SQL 標準聲明 “在 ‘日期時間常值’的定義中,‘日期時間值’受格里曆中日期和時間自然規則的約束”。PostgreSQL 遵循 SQL 標準的領導,僅以格里曆計算日期,即使對於該曆法使用之前的年份也是如此。此規則稱為前置格里曆。
儒略曆是由西元前 45 年的尤利烏斯·凱撒引入的。它在西方世界普遍使用到 1582 年,當時各國開始改用格里曆。在儒略曆中,迴歸年近似為 365 1/4 天 = 365.25 天。這會產生大約每 128 年 1 天的誤差。
累積的曆法誤差促使教宗額我略十三世根據特倫托會議的指示改革曆法。在格里曆中,迴歸年近似為 365 + 97 / 400 天 = 365.2425 天。因此,迴歸年需要大約 3300 年才能相對於格里曆移動一天。
365+97/400 的近似值是透過每 400 年有 97 個閏年來實現的,使用以下規則
每個可以被 4 整除的年份都是閏年。 |
但是,每個可以被 100 整除的年份都不是閏年。 |
但是,每個可以被 400 整除的年份畢竟是閏年。 |
因此,1700、1800、1900、2100 和 2200 年不是閏年。但 1600、2000 和 2400 年是閏年。相比之下,在較舊的儒略曆中,所有可以被 4 整除的年份都是閏年。
1582 年 2 月的教宗詔書規定,應從 1582 年 10 月中刪除 10 天,以便 10 月 15 日緊隨 10 月 4 日之後。這在義大利、波蘭、葡萄牙和西班牙得到了遵守。其他天主教國家隨後也效法,但新教國家不願改變,而希臘東正教國家直到 20 世紀初才改變。英國及其自治領(包括現在的美國)在 1752 年遵守了這項改革。因此,1752 年 9 月 2 日之後是 1752 年 9 月 14 日。這就是為什麼具有 cal
程式的 Unix 系統會產生以下結果
$ cal 9 1752
September 1752
S M Tu W Th F S
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
但是,當然,此曆法僅適用於英國及其自治領,不適用於其他地方。由於嘗試追蹤在不同時間不同地點使用的實際曆法既困難又令人困惑,因此 PostgreSQL 不會嘗試,而是對所有日期遵循格里曆規則,即使這種方法在歷史上不準確。
世界各地開發了不同的曆法,其中許多曆法早於格里曆系統。例如,中國曆法的起源可以追溯到西元前 14 世紀。傳說黃帝在西元前 2637 年發明了該曆法。中華人民共和國在民事方面使用格里曆。中國曆法用於確定節日。
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用 此表單 來報告文件問題。