该YEAR
类型是用于表示年份值的 1 字节类型。它可以声明为
YEAR
具有 4 个字符的隐式显示宽度,或者声明为YEAR(4)
或
YEAR(2)
具有 4 个或 2 个字符的显式显示宽度。
2 位YEAR(2)
数据类型有一些您在选择使用它之前应该考虑的问题。从 MySQL 5.6.6 开始,YEAR(2)
已弃用:YEAR(2)
现有表中的 2 位数列与以前一样处理,但YEAR(2)
新表或更改表中的 2 位数列将转换为 4 位数
YEAR
列。有关详细信息,请参阅
第 11.2.5 节,“2 位 YEAR(2) 限制和迁移到 4 位 YEAR”。
YEAR
/YEAR(4)
和
YEAR(2)
显示格式不同,但具有相同的值范围。对于 4 位格式,MySQL
YEAR
以格式显示值,
YYYY
范围为
1901
到2155
和
0000
。对于 2 位格式,MySQL 只显示最后(最低位)2 位;例如,
70
(1970 或 2070)或69
(2069)。
YEAR
接受多种格式的输入值:
作为 4 位字符串,范围
'1901'
为'2155'
.1901
作为范围内的 4 位数字2155
。作为 1 或 2 位数字字符串,范围
'0'
为'99'
. MySQL 将范围内的值转换为to和 to到 范围'0'
to'69'
和'70'
to中的值 。'99'
YEAR
2000
2069
1970
1999
0
作为范围内 的 1 位或 2 位数字99
。MySQL 将范围内的值转换为to和 to到 范围1
to69
和70
to中的值 。99
YEAR
2001
2069
1970
1999
插入数字对/和
0
有不同的影响 :YEAR
YEAR(4)
YEAR(2)
对于
YEAR
/YEAR(4)
,结果的显示值为 ,0000
内部值为0000
。要指定零并将其解释为2000
,请将其指定为字符串'0'
或'00'
。对于
YEAR(2)
,结果的显示值为 ,00
内部值为2000
。
作为返回上下文可接受的值的函数的结果
YEAR
,例如NOW()
.
如果未启用严格 SQL 模式,MySQL 会将无效
YEAR
值转换为0000
. 在严格 SQL 模式下,尝试插入无效
YEAR
值会产生错误。