Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  2-Digit Years in Dates

13.2.9 日期中的两位年份

带有 2 位年份的日期值是模糊的,因为世纪是未知的。这些值必须被解释为 4 位形式,因为 MySQL 使用 4 位存储年份。

对于 DATETIMEDATETIMESTAMP 类型,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 位年份格式。