2024年9月26日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:开发版
不支持的版本:11 / 10 / 9.6

B.7. 儒略日 #

儒略日”系统是一种对日期进行编号的方法。它与儒略历无关,尽管它与该历法的名称相似,这令人困惑。儒略日系统是由法国学者约瑟夫·斯卡利革(1540-1609)发明的,并且可能以斯卡利革的父亲、意大利学者儒略·凯撒·斯卡利革(1484-1558)的名字命名。

在儒略日系统中,每一天都有一个顺序编号,从 JD 0 开始(有时称为the 儒略日)。JD 0 对应于儒略历公元前 4713 年 1 月 1 日,或公历公元前 4714 年 11 月 24 日。儒略日计数最常被天文学家用于标记他们的夜间观测,因此一个日期从协调世界时中午到下一个协调世界时中午,而不是从午夜到午夜:JD 0 表示从公元前 4714 年 11 月 24 日协调世界时中午到公元前 4714 年 11 月 25 日协调世界时中午的 24 小时。

虽然PostgreSQL支持儒略日期的输入和输出(并且还使用儒略日期进行一些内部日期时间计算),但它没有遵循日期从中午到中午的规范。PostgreSQL将儒略日视为从本地午夜到本地午夜,与普通日期相同。

但是,此定义确实提供了一种在需要时获取天文定义的方法:在UTC+12时区进行算术运算。例如,

=> SELECT extract(julian from '2021-06-23 7:00:00-04'::timestamptz at time zone 'UTC+12');
           extract
------------------------------
 2459388.95833333333333333333
(1 row)
=> SELECT extract(julian from '2021-06-23 8:00:00-04'::timestamptz at time zone 'UTC+12');
               extract
--------------------------------------
 2459389.0000000000000000000000000000
(1 row)
=> SELECT extract(julian from date '2021-06-23');
 extract
---------
 2459389
(1 row)

提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步澄清,请使用此表单报告文档问题。