Rumah > Artikel > pangkalan data > Mengapa bukan amalan yang baik untuk menggunakan nilai tarikh dengan dua digit tahun dalam MySQL?
Seperti yang kita sedia maklum, YEAR(2) menyimpan tahun dalam format 2 digit. Sebagai contoh, kita boleh menulis 69 untuk menyimpan 1969 sebagai tahun. Dalam TAHUN (2), tahun boleh ditentukan dari 1970 hingga 2069 (70 hingga 69).
MySQL mentafsir nilai tahun 2 digit dengan bantuan peraturan berikut -
Kami tidak boleh menyimpan nilai tarikh dalam format 2 digit kerana nilai yang disimpan dalam format ini akan menjadi samar-samar disebabkan abad yang tidak diketahui.
Anda boleh memahaminya dengan lebih jelas dengan bantuan contoh MySQL berikut -
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)
Dengan menyimpan 00 ke dalam "val", kami tidak pasti tahun yang kami maksudkan, "1900" atau "2000". MySQL menafsirkan ini sebagai tahun 2000.
Atas ialah kandungan terperinci Mengapa bukan amalan yang baik untuk menggunakan nilai tarikh dengan dua digit tahun dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!