Mengapa saya mendapat Kod Ralat MySQL 1292: Nilai tarikh yang salah?

Mary-Kate Olsen
Lepaskan: 2024-10-29 21:48:30
asal
248 orang telah melayarinya

Why am I getting MySQL Error Code 1292: Incorrect date value?

Kod Ralat MySQL 1292: Analisis dan Penyelesaian

Apabila cuba memasukkan data ke dalam jadual ALBERGO, mesej ralat ditemui: "Kod Ralat: 1292. Nilai tarikh salah: '01-05-2012' untuk lajur 'data_apertura' pada baris 1." Ralat ini menunjukkan isu dengan format tarikh yang dinyatakan dalam pertanyaan.

Memahami Kod Ralat

Kod ralat 1292 berkaitan khusus dengan nilai tarikh yang salah. Dokumentasi MySQL menyatakan bahawa nilai tarikh tidak sah seperti '0000-00-00 00:00:00' tidak dibenarkan dalam versi 5.7 dan ke atas.

Penyelesaian Masalah dan Penyelesaian

Untuk menyelesaikan ralat ini, format tarikh mesti diubah suai untuk mematuhi keperluan MySQL 5.7. Masalahnya terletak pada nilai tarikh '01-05-2012' dalam format dd/mm/yyyy dan bukannya format yyyy-mm-dd yang dijangkakan.

Untuk membetulkannya, cari fail my.cnf pada sistem anda, biasanya ditemui di /etc/mysql/my.cnf. Untuk pengguna Windows, ia biasanya terletak di C:ProgramDataMySQLMySQL Server 8.0my.ini.

Edit fail dan navigasi ke bahagian [mysqld]. Tambahkan baris berikut dalam bahagian ini:

sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Salin selepas log masuk

Sql_mode yang diubah suai ini akan membenarkan MySQL menerima nilai tarikh yang sebelum ini tidak sah, termasuk '01-05-2012'.

Simpan perubahan ke fail my.cnf dan mulakan semula perkhidmatan MySQL menggunakan arahan yang sesuai untuk sistem pengendalian anda (cth., sudo service mysql restart untuk Linux).

Updated Query

Dengan sql_mode yang diubah suai, anda kini boleh melaksanakan pertanyaan sisipan dengan format tarikh yang diperbetulkan:

INSERT INTO `PROGETTO`.`ALBERGO`
(`ID`, `nome`, `viale`, `num_civico`, `data_apertura`, `data_chiusura`, `orario_apertura`, `orario_chiusura`, `posti_liberi`, `costo_intero`, `costo_ridotto`, `stelle`, `telefono`, `mail`, `web`, `Nome-paese`, `Comune`)
VALUES
(0, 'Hotel Centrale', 'Via Passo Rolle', '74', '2012-05-01', '2012-09-31', '06:30', '24:00', 80, 50, 25, 3, '43968083', '[email protected]', 'http://www.hcentrale.it/', 'Trento', 'TN');
Salin selepas log masuk

Pertanyaan yang diubah suai ini kini akan berjaya dilaksanakan tanpa kod ralat 1292.

Atas ialah kandungan terperinci Mengapa saya mendapat Kod Ralat MySQL 1292: Nilai tarikh yang salah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan