对于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');
除此之外,我在附件里还列举了年月日时分秒各自之差的算法.
1