选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

B.7. 儒略日 #

儒略日系统是一种为天数编号的方法。它与儒略历并无关系,只是名称容易让人误以为二者有关。儒略日系统由法国学者 Joseph Justus Scaliger(1540–1609)发明,其名称大概取自他的父亲、意大利学者 Julius Caesar Scaliger(1484–1558)。

在儒略日系统中,每一天都有一个连续编号,从 JD 0 开始(有时称为起始儒略日)。JD 0 对应儒略历公元前 4713 年 1 月 1 日,或格里高利历公元前 4714 年 11 月 24 日。儒略日计数最常用于天文学家标记夜间观测,因此一天从 UTC 正午开始,到下一个 UTC 正午结束,而不是从午夜到午夜:JD 0 表示从 UTC 公元前 4714 年 11 月 24 日正午,到 UTC 公元前 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');
     date_part
--------------------
 2459388.9583333335
(1 row)
=> SELECT extract(julian from '2021-06-23 8:00:00-04'::timestamptz at time zone 'UTC+12');
 date_part
-----------
   2459389
(1 row)
=> SELECT extract(julian from date '2021-06-23');
 date_part
-----------
   2459389
(1 row)