MySQL 9.0 發行說明
MySQL 使用所謂的前推格里曆。
每個從儒略曆切換到格里曆的國家,在切換過程中都必須捨棄至少十天。為了了解這是如何運作的,請考慮 1582 年 10 月,當時發生了第一次從儒略曆到格里曆的切換。
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
10 月 4 日和 10 月 15 日之間沒有日期。這種不連續性稱為過渡期。過渡期之前的任何日期都是儒略曆,而過渡期之後的任何日期都是格里曆。過渡期期間的日期不存在。
應用於實際未使用時的日期的曆法稱為前推。因此,如果我們假設從未發生過渡期,並且格里曆規則始終適用,則我們就有了前推格里曆。這正是 MySQL 所使用的曆法,這也是標準 SQL 的要求。因此,在過渡期之前儲存為 MySQL DATE
或 DATETIME
值的日期必須進行調整以彌補差異。重要的是要了解過渡期並非在所有國家/地區同時發生,而且發生的時間越晚,損失的天數就越多。例如,在英國,過渡期發生在 1752 年,當時 9 月 2 日星期三之後是 9 月 14 日星期四。俄羅斯一直使用儒略曆直到 1918 年,過程中損失了 13 天,而俗稱的「“十月革命”」根據格里曆發生在 11 月。