Maison  >  Article  >  base de données  >  Pourquoi est-ce que je reçois le code d'erreur MySQL 1292 : valeur de date incorrecte ?

Pourquoi est-ce que je reçois le code d'erreur MySQL 1292 : valeur de date incorrecte ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 21:48:30182parcourir

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

Code d'erreur MySQL 1292 : Analyse et résolution

Lors de la tentative d'insertion de données dans la table ALBERGO, un message d'erreur s'affiche : "Code d'erreur : 1292. Valeur de date incorrecte : '01-05-2012' pour la colonne 'data_apertura' à la ligne 1." Cette erreur indique un problème avec le format de date spécifié dans la requête.

Comprendre le code d'erreur

Le code d'erreur 1292 est spécifiquement lié à des valeurs de date incorrectes. La documentation MySQL indique que les valeurs de date non valides telles que « 0000-00-00 00:00:00 » ne sont pas autorisées dans la version 5.7 et supérieure.

Dépannage et solution

Pour résoudre cette erreur, le format de date doit être modifié pour respecter les exigences de MySQL 5.7. Le problème réside dans le fait que la valeur de date '01-05-2012' est au format jj/mm/aaaa plutôt que le format attendu aaaa-mm-jj.

Pour rectifier cela, localisez le fichier my.cnf sur votre système, généralement trouvé dans /etc/mysql/my.cnf. Pour les utilisateurs Windows, il se trouve généralement dans C:ProgramDataMySQLMySQL Server 8.0my.ini.

Modifiez le fichier et accédez à la section [mysqld]. Ajoutez les lignes suivantes dans cette section :

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

Ce sql_mode modifié permettra à MySQL d'accepter des valeurs de date qui n'étaient pas valides auparavant, y compris « 01-05-2012 ».

Enregistrez les modifications au fichier my.cnf et redémarrez le service MySQL à l'aide des commandes appropriées pour votre système d'exploitation (par exemple, sudo service mysql restart pour Linux).

Requête mise à jour

Avec le sql_mode modifié, vous pouvez désormais exécuter la requête d'insertion avec le format de date corrigé :

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

Cette requête modifiée s'exécutera désormais avec succès sans le code d'erreur 1292.

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!

Déclaration:
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