首頁  >  文章  >  資料庫  >  為什麼我收到 MySQL 錯誤碼 1292:日期值不正確?

為什麼我收到 MySQL 錯誤碼 1292:日期值不正確?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-29 21:48:30182瀏覽

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

MySQL 錯誤代碼1292:分析與解決

嘗試向ALBERGO 表插入資料時,遇到錯誤訊息: 「錯誤代碼: 1292。行的‘data_apertura’列的日期值不正確:‘01-05-2012’。

了解錯誤代碼

錯誤代碼 1292 與不正確的日期值特別相關。 MySQL 文件指出,在 5.7 及更高版本中不允許使用無效的日期值,例如「0000-00-00 00:00:00」。

故障排除和解決方案

要解決此錯誤,必須修改日期格式以符合 MySQL 5.7 要求。問題在於日期值「01-05-2012」的格式為 dd/mm/yyyy,而不是預期的 yyyy-mm-dd 格式。

要修正此問題,請找到 my.cnf 檔案在您的系統上,通常位於 /etc/mysql/my.cnf。對於 Windows 用戶,它通常位於 C:ProgramDataMySQLMySQL Server 8.0my.ini。

編輯檔案並導覽至 [mysqld] 部分。在此部分中新增以下行:

sql_mode="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

此修改後的 sql_mode 將允許 MySQL 接受先前無效的日期值,包括「01-05-2012」。

儲存變更到 my.cnf 文件,並使用適合您作業系統的命令重新啟動 MySQL 服務(例如,對於 Linux,sudo service mysql restart)。

更新的查詢

使用修改後的sql_mode,您現在可以使用更正後的日期格式執行插入查詢:

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');

此修改後的查詢現在將成功執行,並且不會出現錯誤代碼1292。

以上是為什麼我收到 MySQL 錯誤碼 1292:日期值不正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn