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

PHPz
Lepaskan: 2023-09-06 20:25:02
ke hadapan
1362 orang telah melayarinya

为什么在 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)
    Salin selepas log masuk

    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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!