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