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 月发生的。