MySQL 'Nilai datetime salah' Ralat: Menangani '0000-00-00 00:00:00' Tarikh
Apabila menaik taraf MySQL pangkalan data daripada versi yang lebih lama, pengguna mungkin menghadapi ralat "Nilai masa tarikh yang salah: '0000-00-00 00:00:00' untuk lajur 'dicipta' pada baris 1" semasa cuba mengubah suai lajur jadual. Ralat ini timbul disebabkan oleh nilai datetime lapuk yang disimpan dalam pangkalan data.
Latar Belakang
MySQL 5.1 menggunakan nilai "0000-00-00 00:00:00" untuk mewakili cap masa yang tidak diketahui atau tidak sah, seperti medan kosong. Walau bagaimanapun, versi MySQL yang lebih baru, seperti 5.7, menguatkuasakan pengesahan yang lebih ketat untuk nilai datetime, menyebabkan ralat ini berlaku apabila mengimport jadual atau mengubah suai lajur tarikh.
Langkah Penyelesaian Masalah
Untuk menyelesaikan ralat ini, ikut langkah berikut:
SELECT * FROM users WHERE created = '0000-00-00 00:00:00';
UPDATE users SET created = '1970-01-01 00:00:00' WHERE created = '0000-00-00 00:00:00';
UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';
Penting Nota
Sebelum mengemas kini sebarang nilai, pastikan nilai datetime yang dipilih adalah serasi dengan keperluan aplikasi. Medan kosong mungkin mempunyai makna khusus dalam logik aplikasi, jadi menggantikannya dengan NULL atau tarikh lalai boleh menyebabkan masalah.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Nilai datetime yang salah: \'0000-00-00 00:00:00\'\' MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!