儒略日系统是一种对天数进行编号的方法。它与儒略历无关,虽然其名称与该日历混淆得很相似。儒略日系统是由法兰西学者约瑟夫·朱斯特·斯卡利杰(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)