从两个不同的日子提取历元得到相同的结果



如果我在数据库上运行此查询

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 

最新更新