YEAR(2) เก็บปีในรูปแบบ 2 หลัก เช่น เขียน 69 เพื่อเก็บปี 1969 ช่วงปี 1970-2069 (70-69)
YEAR(4) เก็บปีในรูปแบบ 4 หลัก เช่น เขียน 1969 เพื่อเก็บปี 1969 ช่วงปี 1901-2155
MySQL แปลงค่าปี 2 หลักด้วยกฎ:
- ค่าปี 00-69 แปลงเป็น 2000-2069
- ค่าปี 70-99 แปลงเป็น 1970-1999
ไม่ควรเก็บวันที่ในรูปแบบ 2 หลัก เพราะไม่ชัดเจนว่าเป็นศตวรรษไหน
ตัวอย่าง
mysql> CREATE TABLE year_test(val YEAR(2));
mysql> INSERT INTO year_test(val) VALUES('70'), ('00');
mysql> SELECT * FROM year_test;
+------+
| val |
+------+
| 70 |
| 00 |
+------+
mysql> SELECT * FROM year_test WHERE val = '1970';
+------+
| val |
+------+
| 70 |
mysql> SELECT * FROM year_test WHERE val = '2000';
+------+
| val |
+------+
| 00 |
mysql> SELECT * FROM year_test WHERE val = '1900';
Empty set
ไม่แน่ชัดว่า '00' หมายถึง 1900 หรือ 2000 MySQL แปลว่าเป็นปี 2000