儒略日系统是一种为天数编号的方法。它与儒略历并无关系,只是名称容易让人误以为二者有关。儒略日系统由法国学者 Joseph Justus Scaliger(1540–1609)发明,其名称大概取自他的父亲、意大利学者 Julius Caesar Scaliger(1484–1558)。
在儒略日系统中,每一天都有一个连续编号,从 JD 0 开始(有时就称为儒略日)。JD 0 在儒略历中对应公元前 4713 年 1 月 1 日,在格里高利历中对应公元前 4714 年 11 月 24 日。天文学家最常使用儒略日来标记其夜间观测,因此一个日期是从一个 UTC 正午到下一个 UTC 正午,而不是从午夜到午夜:JD 0 指的是从公元前 4714 年 11 月 24 日 UTC 正午到公元前 4714 年 11 月 25 日 UTC 正午这 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)
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。