--**获取秒差**
SELECT round(date_part('epoch', TIMESTAMP '2019-05-05 12:11:20' - TIMESTAMP '2019-05-05 10:10:10'));

--**获取分钟差**
SELECT round(date_part('epoch', TIMESTAMP '2019-05-05 12:11:20' - TIMESTAMP '2019-05-05 10:10:10')/60);

--**获取小时差**
SELECT round(date_part('epoch', TIMESTAMP '2019-05-05 12:11:20' - TIMESTAMP '2019-05-05 10:10:10')/60/60);

--**获取天数差**
SELECT Date('2019-06-05') - Date('2019-05-03');
--**获取月份差**
select extract(year from age(TIMESTAMP '2018-04-05',TIMESTAMP '2017-02-04')) * 12  + extract(MONTH from age(TIMESTAMP '2019-04-05',TIMESTAMP '2017-02-04'));
--**获取年份差**
SELECT extract(year from age(TIMESTAMP '2018-04-05',TIMESTAMP '2017-02-04'));

对于 postgresql ,网上找到的求日期之差的代码很多都是有误导性的,比如求分钟之差,网上很多地方说是SELECT date_part('min', TIMESTAMP '2019-05-05 12:11:20' - TIMESTAMP '2019-05-05 10:10:10');这明显是不对的,因为这样只能获取到分钟域里的值,它的值只会在0-59之间, 只能在同一个hour的时候才准确. 而天数之差,网上说select EXTRACT(DAY from age(TIMESTAMP '2019-02-01',TIMESTAMP '2019-03-05'));也是不对的,也是同样的问题. 正确的做法应该是:分钟之差:SELECT round(date_part(' epoch ', TIMESTAMP '2019-05-05 12:11:20' - TIMESTAMP '2019-05-05 10:10:10')/60); 天数之差 SELECT Date('2019-06-05') - Date('2019-05-03'); 除此之外,我在附件里还列举了年月日时分秒各自之差的算法. 按日期 计算 天数差 # select (('2019-11-18 12:05'::timestamp)::date - ('2019-10-18 12:05'::timestamp)::date) as day; ----- # select (('2019-11-18 00:05'::timestamp)::date - ('2019-10-18 12:05'::times... 需求:获取开始时间到结束时间的间隔(单位:分钟) PostgreSQL :round(date_part(' epoch ', end_time - begin_time)::NUMERIC / 60) --时间间隔(INTERVAL)->间隔时间转换成秒->秒转换成分 1、使用to_date 返回比较的只是日期(即2020-12-15) to_date(action_b->>'action_time','YYYY-MM-DD hh24:mi:ss')<to_date('2020-12-16 00:00:00','YYYY-MM-DD hh24:mi:ss') 2、使用timestamp关键字 返回结果准确 (action_b->>'action_time')::timestamp>timestamp '2020-12-15 18:0 PostgreSQL 中提供了三种实现模式匹配的方法: SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。     1. LIKE:     string LIKE pattern [ ESCAPE escape-character ]     string NOT LIKE pattern [ ESCAPE escape- 先记录一下,后面再补充 clock_timestamp() 和 返回实时时间值的 函数 , 它们的返回值会在事务中随时间的前进而变化,和 oracle 的sysdate 都是返回实时时间。 pg sql 对 date 和 time 数据类型区分比较明确。 select pg _typeof(clock_timestamp()); -[ RECORD... <select id="selectList" resultType="com.entity.UserInfo" parameterType="java.util.List"> SELECT * // 今天 <if test="type != null and type == 1"> AND DATE_FORMAT(T1.aaa_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d') // 本周