↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6

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 指的是从公元前 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)

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.