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