Maison > base de données > tutoriel mysql > le corps du texte

Comment corriger une valeur datetime incorrecte lors de l'insertion dans une table MySQL ?

WBOY
Libérer: 2023-08-31 12:53:06
avant
994 Les gens l'ont consulté

在 MySQL 表中插入时如何修复不正确的日期时间值?

Pour éviter une erreur de valeur datetime incorrecte, vous pouvez utiliser la méthode STR_TO_DATE().

Comme nous le savons, le format datetime est AAAA-MM-JJ et si vous n'insérez pas dans le même format, l'erreur serait être généré.

Voyons ce qui a réellement conduit à cette erreur. Pour cela, créons une nouvelle table est la suivante

mysql> create table CorrectDatetimeDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > ArrivalTime datetime
   - > );
Query OK, 0 rows affected (0.63 sec)
Copier après la connexion

Cela se produit lorsque nous essayons d'inclure une date avec une date/heure incorrecte. format

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
Copier après la connexion

Pour éviter l'erreur ci-dessus, vous pouvez utiliser STR_TO_DATE().

La syntaxe est la suivante

INSERT INTO yourTableName(yourDateTimeColumnName) VALUES (STR_TO_DATE('yourDateTimeValue','%d/%m/%Y %H:%i:%s'));
Copier après la connexion

Maintenant, insérons à nouveau la date et l'heure avec le format correct, comme indiqué dans la syntaxe ci-dessus.

La requête est la suivante

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)
Copier après la connexion

Utilisez l'instruction select pour afficher tous les enregistrements de la table.

La requête est la suivante

mysql> select *from CorrectDatetimeDemo;
Copier après la connexion

Ce qui suit est le résultat de sortie

+----+---------------------+
| 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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal