如果我在数据库上运行此查询
SELECT EXTRACT('epoch' FROM age('2021-01-01'::date, '2019-12-01'::date))
结果是34149600
。
但如果我尝试2019-12-02(多一天(
SELECT EXTRACT('epoch' FROM age('2021-01-01'::date, '2019-12-02'::date))
结果与34149600
完全相同!
就好像从2019年12月2日到2021年1月1日的秒数与从2019年11月1日到2021月1日之间的秒数相同。
为什么会这样?我已经在所有日期(2021年1月1日、2019年12月1日和2021年12月2日(的00:00:00+00时区尝试了上述代码,它给出了相同的结果
显然,我本以为这个时代会有所不同,大约有3600*24的差异(一天中的秒数(。
类似的结果来自age()
函数,该函数返回年、月、天的间隔。在这样的间隔中,1个月=30天,因此它们以秒为单位的转换是相似的。
您将使用获得预期结果
SELECT extract(epoch from ('2021-01-01'::timestamp - '2019-12-01'::timestamp)) => 34300800.000000
SELECT extract(epoch from ('2021-01-01'::timestamp - '2019-12-02'::timestamp)) => 34214400.000000