从两个不同的日子中提取纪元会产生相同的结果

Extracting epoch from two different days yields same result

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

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 年 12 月 1 日到 2021 年 1 月 1 日的秒数相同。

这是为什么?我已经在所有日期(2021 年 1 月 1 日、2019 年 12 月 1 日和 2021 年 12 月 2 日)的 00:00:00+00 时区尝试了上述代码,它给出了相同的结果

显然,我本以为纪元会有所不同,大约相差 3600*24(一天中的秒数)。

类似的结果来自 age() 函数,该函数 returns 以年、月、日为间隔。在这样的时间间隔里,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