官方文档地址:11.2.4 The YEAR Type
YEAR 类型是一种用于表示年份值的 1 字节类型。它可以被声明为具有隐式显示宽度为 4 个字符的 YEAR,或者等价于具有显式显示宽度的 YEAR(4)。
注意
在 MySQL 8.0.19 中,带有显式显示宽度的 YEAR(4) 数据类型已被弃用;在未来的 MySQL 版本中,应该会删除对它的支持。相反,使用不带显示宽度的 YEAR,这具有相同的含义。
MySQL 8.0 不支持旧版本 MySQL 中允许的两位数的 YEAR(2) 数据类型。有关将年份转换为四位数字的说明,参见 MySQL 5.7 参考手册的 11.2.5 两位 YEAR(2) 限制和迁移到四位 YEAR。
MySQL 以YYYY
格式显示年份值,取值范围为1901 ~ 2155
和0000
。
YEAR 接受输入值的几种格式:
- 在
'1901'
到'2155'
范围内的 4 位字符串。 - 在
1901
到2155
范围内的 4 位数字。 - 在
'0'
到'99'
范围内的1 或者 2 位字符串。MySQL 将'0'
到'69'
和'70'
到'99'
之间的值转换为2000
到2069
和1970
到1999
之间的年值。 - 在
0
到99
范围内的1 或者 2 位数字。MySQL 将1
到69
和70
到99
之间的值转换为2001
到2069
和1970
到1999
之间的年值。
插入数字0
的结果显示值为0000
,内部值为0000
。要插入零并将其解释为2000
,请将其指定为字符串'0'
或'00'
。 - 作为函数的返回值,该函数返回的值在年份上下文中是可接受的,例如
NOW()
。
如果没有启用严格 SQL 模式,MySQL 会将无效的年份值转换为0000
。在严格的 SQL 模式下,尝试插入无效的年份值会产生错误。
参见 11.2.8 两位数字的年份。