Documentation Home
MySQL 8.0 参考手册  / 第 12 章函数和运算符  /  12.9 MySQL 使用什么日历?

12.9 MySQL 使用什么日历?

MySQL 使用所谓的proleptic Gregorian 日历

每个从儒略历转换为公历的国家都必须在转换期间放弃至少十天。要了解这是如何工作的,请考虑 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 日之间没有日期。这种不连续性称为 切换。转换之前的任何日期都是 Julian,转换之后的任何日期都是 Gregorian。切换期间的日期不存在。

应用于未实际使用的日期的日历称为proleptic。因此,如果我们假设从不存在转换并且公历规则始终占主导地位,那么我们就有了一个公历。这是 MySQL 使用的,正如标准 SQL 所要求的那样。因此,转换之前的日期存储为 MySQL DATEDATETIME必须调整值以补偿差异。重要的是要认识到切换并不是在所有国家同时发生的,发生的越晚,损失的天数就越多。例如,在英国,它发生在 1752 年,9 月 2 日星期三之后是 9 月 14 日星期四。俄罗斯在 1918 年之前一直沿用儒略历,在此过程中减少了 13 天,也就是通常所说的十月”革命发生在公历十一月。