Redrock Postgres 搜索 英文
版本: 14 / 15 / 16 / 17

B.7. 儒略日 #

儒略日系统是一种对天数进行编号的方法。它与儒略历无关,虽然其名称与该日历混淆得很相似。儒略日系统是由法兰西学者约瑟夫·朱斯特·斯卡利杰(1540-1609 年)发明的,其名称可能来自斯卡利杰的父亲、意大利学者儒略·凯撒·斯卡利杰(1484-1558 年)。

在儒略日系统中,每天都有一个顺序号,从 JD 0(有时称为儒略日)开始。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)