MySQL 中的 YEAR(2) 和 YEAR(4) 有什么区别?


YEAR(2) 以两位数字格式存储年份。例如,我们可以编写 69 来存储年份 1969。在 YEAR (2) 中,年份可以从 1970 到 2069(70 到 69)。

YEAR(4) 以四位数字格式存储年份。例如,我们需要编写 19669 来存储 1969 作为年份。在 YEAR (4) 中,年份可以从 1901 到 2155。

MySQL 使用以下规则解释两位数年份值

  • 00-69 范围内的年份值转换为 2000-2069。
  • 70-99 范围内的年份值转换为 1970-1999。

我们不得将日期值存储为两位格式,因为以这种格式存储的值会变得模糊,因为该世纪未知。

通过以下 MySQL 示例可以更清楚地理解这一点 -

mysql> Create Table year_test(val year(2));
Query OK, 0 rows affected, 1 warning (0.23 sec)

mysql> insert into year_test(val) values('70');
Query OK, 1 row affected (0.14 sec)

mysql> insert into year_test(val) values('00');
Query OK, 1 row affected (0.06 sec)
mysql> select * from year_test;
+------+
| val  |
+------+
| 70   |
| 00   |
+------+
2 rows in set (0.00 sec)

mysql> select * from year_test where val = '1970';
+------+
| val  |
+------+
| 70   |
+------+
1 row in set (0.03 sec)

mysql> select * from year_test where val = '2000';
+------+
| val  |
+------+
| 00   |
+------+
1 row in set (0.00 sec)

mysql> select * from year_test where val = '1900';
Empty set (0.06 sec)

不能确定我们用“1900”或“2000”表示哪一年,将 00 存储到“val”中。MySQL 将其解释为 2000 年。

更新于: 2020 年 6 月 19 日

514 次浏览

开启你的 职业生涯

完成此课程以获得认证

开始
广告