12.8 MySQL 使用什么 calendar?
MySQL 使用所谓的多历公历。
从儒略历转换为公历的每个国家都必须在转换期间至少放弃 10 天。要了解其工作原理,请考虑 1582 年 10 月,即第一次朱利安到格里高利安的转换。
Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
---|---|---|---|---|---|---|
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 日之间没有日期。这种间断称为过渡。割接之前的任何日期都是朱利安,割接之后的任何日期都是公历。转换期间的日期不存在。
适用于不实际使用的日期的 calendar 称为多用 calendar。因此,如果我们假设从未有过割礼,而格里高利规则总是占统治地位,那么我们就有一个多产的格里高利 calendar。这是 MySQL 使用的,这是标准 SQL 所要求的。因此,必须调整转换前存储为 MySQL DATE或DATETIME值的日期,以补偿差异。重要的是要认识到,并非所有国家都在同一时间进行转换,而且转换发生得越晚,损失的时间就越多。例如,在英国,发生在 1752 年,9 月 2 日(星期三)之后是 9 月 14 日(星期四)。俄罗斯一直使用儒略历,直到 1918 年,在此过程中损失了 13 天,通常被称为“十月”。根据公历,“革命”发生在 11 月。