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 年。
廣告