2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不再支持的版本: 12 / 11 / 10 / 9.6

B.7. 儒略日 #

儒略日期系统是一种为天数编号的方法。它与儒略历无关,尽管其名称与该历法相似,容易混淆。儒略日期系统是由法国学者 Joseph Justus Scaliger(1540-1609)发明的,其名称可能取自 Scaliger 的父亲,意大利学者 Julius Caesar Scaliger(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)

提交更正

如果您在文档中发现任何不正确之处、与您对特定功能的体验不符之处,或需要进一步澄清之处,请使用此表格报告文档问题。