Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan \'Nilai datetime salah MySQL: \'0000-00-00 00:00:00\'\' Ralat Semasa Perubahan Set Aksara?

Bagaimana untuk Membetulkan \'Nilai datetime salah MySQL: \'0000-00-00 00:00:00\'\' Ralat Semasa Perubahan Set Aksara?

Barbara Streisand
Barbara Streisandasal
2024-11-30 11:20:10443semak imbas

How to Fix MySQL's

Nilai Masa Tarikh Salah MySQL: '0000-00-00 00:00:00'

Dalam bidang kejuruteraan pangkalan data, seseorang mungkin hadapi mesej ralat yang membingungkan: "Nilai datetime salah: '0000-00-00 00:00:00'". Ralat ini sering melanda pengguna yang cuba mengubah set aksara jadual pangkalan data mereka sambil bergelut dengan versi MySQL yang bercanggah.

Untuk menangani isu ini, mari kita teliti langkah yang telah anda ambil setakat ini:

  1. Persediaan Pangkalan Data: Anda telah memindahkan pangkalan data daripada MySQL 5.1 ke MySQL 5.7 dan menghadapi ketidakserasian.
  2. Perubahan Set Aksara Lalai: Anda cuba menukar set aksara lajur daripada latin1 kepada utf8.
  3. Ralat Masa Tarikh: Anda menerima ralat "Nilai datetime salah: '0000-00-00 00:00:00'" semasa cuba mengubah suai lajur masa tarikh.

Untuk menyelesaikan isu ini, cuba pendekatan berikut:

Langkah 1: Semak Nilai Null

Sahkan sama ada terdapat sebarang nilai nol dalam lajur datetime. Anda boleh menggunakan pertanyaan berikut:

SELECT count(*) FROM users WHERE created IS NULL;

Jika terdapat nilai nol, cuba tetapkannya kepada '1970-01-01 00:00:00' menggunakan pertanyaan berikut:

UPDATE users SET created = '1970-01-01 00:00:00' WHERE created IS NULL;

Langkah 2: Gunakan Fungsi CAST

Jika tiada nol nilai, cuba gunakan fungsi CAST untuk menukar lajur datetime kepada rentetan aksara:

UPDATE users SET created = NULL WHERE CAST(created AS CHAR(20)) = '0000-00-00 00:00:00';

Pertanyaan ini harus berjaya menetapkan semua nilai '0000-00-00 00:00:00' kepada NULL, membolehkan anda untuk mengubah suai set aksara masa tarikh lajur.

Kesimpulan

Dengan mengkaji kemungkinan punca ralat dan menyediakan penyelesaian langkah demi langkah, artikel ini bertujuan untuk melengkapkan anda dengan pengetahuan yang diperlukan untuk selesaikan isu serupa yang mungkin anda hadapi semasa bekerja dengan MySQL.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Nilai datetime salah MySQL: \'0000-00-00 00:00:00\'\' Ralat Semasa Perubahan Set Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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