MySQL 8.4 Release Notes
13.2.9 日期中的两位数年份
日期值中的两位数年份是模糊的,因为世纪是未知的。因此,MySQL必须将其解释为4位数字形式,因为MySQL内部使用4位数字存储年份。
对于DATETIME、DATE和TIMESTAMP类型,MySQL使用以下规则解释日期值:
-
在
00-69范围内的年值将变为2000-2069。 -
在
70-99范围内的年值将变为1970-1999。
对于YEAR,规则相同,但有一个例外:将00插入YEAR将导致0000,而不是2000。要指定零为YEAR并将其解释为2000,请指定字符串'0'或'00'。
请记住,这些规则只是合理的猜测,以便提供有意义的输入。如果MySQL的规则不能产生您所需的值,您必须提供明确的输入,包含4位数字年份。
ORDER BY正确地对YEAR值进行排序,这些值具有2位年份。
一些函数,如MIN()和MAX(),将YEAR转换为数字。这意味着具有2位年份的值不能正确地与这些函数一起使用。解决方案是在这种情况下将YEAR转换为4位数字年份格式。