ホームページ  >  記事  >  データベース  >  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。日付値が正しくありません: 行 1 の列 'data_apertura' の '01-05-2012'。」このエラーは、クエリで指定された日付形式に問題があることを示しています。

エラー コードについて

エラー コード 1292 は、特に不正な日付値に関連しています。 MySQL のドキュメントには、「0000-00-00 00:00:00」などの無効な日付値はバージョン 5.7 以降では許可されないと記載されています。

トラブルシューティングと解決策

このエラーを解決するには、MySQL 5.7 の要件に準拠するように日付形式を変更する必要があります。問題は、日付値 '01-05-2012' が、予期される yyyy-mm-dd 形式ではなく、dd/mm/yyyy 形式であることにあります。

これを修正するには、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 ファイルにファイルを追加し、オペレーティング システムに適したコマンド (Linux の場合は sudo service mysql restart など) を使用して MySQL サービスを再起動します。

Updated Query

変更された 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。