儒略日期(Julian Date)系统是一种给天数 编号的方法。它与儒略历无关,尽管它的命名与该历法 混淆地相似。 儒略日期系统由法国学者 Joseph Justus Scaliger(1540–1609) 发明,其名字可能取自 Scaliger 的父亲, 意大利学者 Julius Caesar Scaliger(1484–1558)。
在儒略日期系统中,每一天都有一个顺序编号,从 JD 0(有时被称为那个儒略日期)开始。 JD 0 对应儒略历中的公元前 4713 年 1 月 1 日,或公历中的公元前 4714 年 11 月 24 日。儒略日期计数最常被天文学家用于标注他们的 夜间观测,因此一个日期从 UTC 正午运行到下一个 UTC 正午, 而不是从午夜到午夜:JD 0 指定从公元前 4714 年 11 月 24 日 UTC 正午到 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)