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