Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่าง YEAR(2) และ YEAR(4) ใน MySQL

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