MySQL 中的 YEAR(2) 和 YEAR(4) 有什麼區別?


YEAR(2) 以 2 位數字格式儲存年份。例如,我們可以編寫 69 來儲存年份 1969 年。在 YEAR (2) 中,年份可以從 1970 年到 2069 年(70 年到 69 年)指定。

YEAR(4) 以 4 位數字格式儲存年份。例如,我們需要編寫 19669 來儲存年份 1969 年。在 YEAR (4) 中,年份可以從 1901 年到 2155 年指定。

MySQL 藉助以下規則解釋 2 位數字年份值

  • 00-69 範圍內的年份值轉換為 2000-2069 年。
  • 70-99 範圍內的年份值轉換為 1970-1999 年。

我們一定不能以 2 位數字格式儲存日期值,因為以這種格式儲存的值會變得模糊,因為世紀是未知的。

藉助以下 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-06-19

514 次瀏覽

開啟你的 職業旅程

完成課程後獲得認證

開始
廣告
© . All rights reserved.