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