支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6

B.7. 儒略日 #

儒略日系统是一种对日期进行编号的方法。它与儒略历无关,尽管它的名称与儒略历相似,容易混淆。儒略日系统是由法国学者约瑟夫·贾斯特斯·斯卡利格(Joseph Justus Scaliger,1540-1609)发明的,它的名字可能来源于斯卡利格的父亲,意大利学者朱利叶斯·凯撒·斯卡利格(Julius Caesar Scaliger,1484-1558)。

在儒略日系统中,每一天都有一个连续的数字,从JD 0开始(有时称为the儒略日)。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)

提交更正

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