MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLテーブルへの挿入中に誤った日時値を修正するにはどうすればよいですか?


誤った日時値エラーを回避するには、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)
>
  1. MySQL製品テーブルから製品の合計値を計算するにはどうすればよいですか?

    まずテーブルを作成しましょう- mysql> create table DemoTable    (    ProductId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    ProductQuantity int,    ProductPrice int    ); Query OK, 0 rows affected (0.19 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert int

  2. MySQLでテーブルの構造を複製するにはどうすればよいですか?

    MySQLでクローンを作成するには、LIKE句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentName varchar(20) -> ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(100,'John'); Query OK, 1 row aff