支援的版本:目前版本 (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)

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。