The YEAR
type is a 1-byte type used to
represent year values. It can be declared as
YEAR
with an implicit display width of 4
characters, or equivalently as YEAR(4)
with
an explicit display width.
he YEAR(4)
data type using an
explicit display width is deprecated and you should expect
support for it to be removed in a future version of MySQL.
Instead, use YEAR
without a
display width, which has the same meaning.
MySQL displays YEAR
values in
YYYY
format, with a range of
1901
to 2155
, and
0000
.
YEAR
accepts input values in a variety of
formats:
As 4-digit strings in the range
'1901'
to'2155'
.As 4-digit numbers in the range
1901
to2155
.As 1- or 2-digit strings in the range
'0'
to'99'
. MySQL converts values in the ranges'0'
to'69'
and'70'
to'99'
toYEAR
values in the ranges2000
to2069
and1970
to1999
.As 1- or 2-digit numbers in the range
0
to99
. MySQL converts values in the ranges1
to69
and70
to99
toYEAR
values in the ranges2001
to2069
and1970
to1999
.The result of inserting a numeric
0
has a display value of0000
and an internal value of0000
. To insert zero and have it be interpreted as2000
, specify it as a string'0'
or'00'
.As the result of functions that return a value that is acceptable in
YEAR
context, such asNOW()
.
If strict SQL mode is not enabled, MySQL converts invalid
YEAR
values to 0000
. In
strict SQL mode, attempting to insert an invalid
YEAR
value produces an error.
See also Section 13.2.9, “2-Digit Years in Dates”.