MySQL 8.4 发行说明
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 月。