### 11.2.4 年份类型

[](<>)[](<>)

这`年`type 是一个 1 字节的类型，用于表示年份值。可以声明为`年`隐式显示宽度为 4 个字符，或等效为`年(4)`具有明确的显示宽度。

笔记

从 MySQL 8.0.19 开始，[`年(4)`](year.html)不推荐使用具有显式显示宽度的数据类型，您应该期望在 MySQL 的未来版本中删除对它的支持。相反，使用[`年`](year.html)没有显示宽度，具有相同的含义。

MySQL 8.0 不支持 2 位[`年(2)`](year.html)旧版本的 MySQL 中允许的数据类型。有关转换为 4 位数的说明[`年`](year.html)， 看[2 位 YEAR(2) 限制和迁移到 4 位 YEAR](https://dev.mysql.com/doc/refman/5.7/en/migrating-from-year2.html)， 在[MySQL 5.7 参考手册](https://dev.mysql.com/doc/refman/5.7/en/).

MySQL 显示`年`中的值*`年年`*格式，范围为`1901`到`2155`， 和`0000`.

`年`接受多种格式的输入值：

-   作为范围内的 4 位字符串`'1901'`到`'2155'`.

-   作为范围内的 4 位数字`1901`到`2155`.

-   作为范围内的 1 位或 2 位字符串`'0'`到`'99'`.MySQL 转换范围内的值`'0'`到`'69'`和`'70'`到`'99'`到`年`范围内的值`2000`到`2069`和`1970`到`1999`.

-   作为范围内的 1 位或 2 位数字`0`到`99`.MySQL 转换范围内的值`1`到`69`和`70`到`99`到`年`范围内的值`2001年`到`2069`和`1970`到`1999`.

    插入数字的结果`0`显示值为`0000`和内部价值`0000`.插入零并将其解释为`2000`, 将其指定为字符串`'0'`要么`'00'`.

-   作为返回值的函数的结果，在`年`上下文，例如[`现在（）`](date-and-time-functions.html#function_now).

    如果没有开启严格的SQL模式，MySQL转换无效`年`值到`0000`.在严格的 SQL 模式下，试图插入一个无效的`年`值产生错误。

    也可以看看[第 11.2.8 节，“日期中的两位数年份”](two-digit-years.html).
