Rumah  >  Artikel  >  pangkalan data  >  Mengapa bukan amalan yang baik untuk menggunakan nilai tarikh dengan dua digit tahun dalam MySQL?

Mengapa bukan amalan yang baik untuk menggunakan nilai tarikh dengan dua digit tahun dalam MySQL?

PHPz
PHPzke hadapan
2023-09-06 20:25:021383semak imbas

为什么在 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 -

  • Nilai tahun dalam julat 00-69 akan ditukar kepada 2000-2069.
  • Nilai tahun dalam julat 70-99 akan ditukar kepada 1970-1999.
  • ul>

    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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam