不正な日時値エラーを回避するには、STR_TO_DATE() メソッドを使用できます。
ご存知のとおり、日時形式は YYYY-MM-DD であり、同じ形式で挿入しないと、エラーが生成されます。
実際にこのエラーが発生する原因を見てみましょう。そのために、新しいテーブルを作成しましょう。テーブルを作成するクエリは次のとおりです。
mysql> create table CorrectDatetimeDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > ArrivalTime datetime - > ); Query OK, 0 rows affected (0.63 sec)
この問題は、誤った日時形式の日付を含めようとすると発生します
mysql> insert into CorrectDatetimeDemo(ArrivalTime) values('18/02/2019 11:15:45'); ERROR 1292 (22007): Incorrect datetime value: '18/02/2019 11:15:45' for column 'ArrivalTime' at row 1
上記のエラーを回避するには、STR_TO_DATE() を使用できます。
構文は次のとおりです
INSERT INTO yourTableName(yourDateTimeColumnName) VALUES (STR_TO_DATE('yourDateTimeValue','%d/%m/%Y %H:%i:%s'));
次に、上記の構文に示されている正しい形式で日時を再度挿入してみましょう。
クエリは次のとおりです
mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('18/02/2019 11:15:45','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.21 sec) mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('15/01/2017 10:10:15','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.16 sec) mysql> insert into CorrectDatetimeDemo(ArrivalTime) values(STR_TO_DATE('12/04/2016 15:30:35','%d/%m/%Y %H:%i:%s')); Query OK, 1 row affected (0.20 sec)
select ステートメントを使用して、テーブル内のすべてのレコードを表示します。
クエリは次のとおりです
mysql> select *from CorrectDatetimeDemo;
出力結果は次のとおりです
+----+---------------------+ | Id | ArrivalTime | +----+---------------------+ | 1 | 2019-02-18 11:15:45 | | 2 | 2017-01-15 10:10:15 | | 3 | 2016-04-12 15:30:35 | +----+---------------------+ 3 rows in set (0.00 sec)
以上がMySQL テーブルに挿入するときに誤った日時値を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。