11.2.9 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'
。
请记住,这些规则只是对数据值的含义提供合理猜测的试探法。如果 MySQL 使用的规则未产生您所需的值,则必须提供包含 4 位年份值的明确 Importing。
ORDER BY
正确排序具有两位数年份的YEAR值。
诸如MIN()和MAX()之类的某些功能会将YEAR转换为数字。这意味着具有两位数年份的值不适用于这些功能。在这种情况下,解决方法是将YEAR转换为 4 位数的年份格式。