Rumah > Artikel > pangkalan data > Mengapa saya mendapat Kod Ralat MySQL 1292: Nilai tarikh yang salah?
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.
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.
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"
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).
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');
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!