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位数字年份格式。