儒略日期系统是一种计算天数的方法。它虽然在命名上很相似,但是它和儒略历法无关。儒略日期系统是法国学者 Joseph Justus Scaliger(1540–1609)(可能是取自其父亲的名字,即意大利学者 Julius Caesar Scaliger(1484–1558)发明的。
在儒略日期系统中,每天都有一个序数,从 JD 0 开始(有时被叫做那个儒略日期)。 JD 0 在儒略历法中对应公元前 4713 年 1 月 1 日,或者在格里高利历中对应公元前 4714 年 12 月 24 日。儒略日期计数经常被天文学家用来标注夜间观测,并且因此一个日期就是从一个正午 UTC 到下一个正午 UTC,而不是从午夜到另一个午夜:JD 0 设计的 24 小时是从公元前 4714 年 12 月 24 日的正午 UTC 到公元前 4714 年 12 月 25 日的正午 UTC。
尽管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)