MySQL 1292 Incorrecte valeur de type datetime
J'obtiens ce message d'erreur lorsque j'essaie d'insérer des "2011/03/13 02:53:50.000000000" dans une colonne de type timestamp. Si je change de 13 à 15, 14, 12, 11, il fonctionne sans problème. J'ai aussi essayé de changer les /'s -'et toujours pas de.
Je l'ai regardé à travers quelques-uns des autres threads liés à cette erreur, mais aucune ne semble s'appliquer.
Je suis en version 5.7.9.
où est l'erreur?
Regardez cette.Il vous aidera à dev.mysql.com/doc/refman/5.7/en/datetime.html
Le message d'erreur est 1292 Incorrecte valeur de type datetime.
pouvez-vous s'il vous plaît, fournir certains SQLfiddle extrait pour illustrer cela?
voici mon SQL VIOLON et il semble fonctionner. Bizarre?
Regardez cette.Il vous aidera à dev.mysql.com/doc/refman/5.7/en/datetime.html
Le message d'erreur est 1292 Incorrecte valeur de type datetime.
pouvez-vous s'il vous plaît, fournir certains SQLfiddle extrait pour illustrer cela?
voici mon SQL VIOLON et il semble fonctionner. Bizarre?
OriginalL'auteur CycleGeek | 2016-02-24
Vous devez vous connecter pour publier un commentaire.
Il m'a fallu un certain temps pour comprendre cela...
Le problème est que "2011-03-13 02:53:50" est illégale en raison de l'heure d'été switch entre 2 et 3 heures du matin, de sorte que toutes les valeurs de temps entre 2 et 3 heures du matin sur tout l'heure d'été journée d'introduction ne sont pas valides. Même pour la "2016-03-13 02:32:21', etc.
Changement de fuseau horaire pour celui qui n'utilise pas l'heure d'été et vous devriez être bien.
OriginalL'auteur nik
Je pense que vous devez utiliser certaines str conversions dans MySQL avant de l'insérer. Ou de préparer les données dans le format approprié, avant de faire la requête à MySQL.
Quelques microsecondes format est également faux. Documentation de MySQL indique clairement ce:
Mise à JOUR: sur mon localhost, j'ai eu la même version de MySQL, et il fonctionne.
Essayé d'effectuer la conversion
et obtenu:
Voici la SQLFiddle, qui confirme la chose sur l'autre version de MySQL.
Je n'ai plus d'idées, je pense que le problème est lié à la "locale glitch" dans la structure de la Table ou de la version de MySQL+OS.
ne vous obtenez la bonne conversions lorsque la date est insérée, et puis vous essayez de sélectionner de nouveau? Je sens quelque chose de mal avec la conversion de chaîne de caractères elle-même
Oui, si j'insert '2011-03-12 02:53:50.000000" ou "2011/03/12 02:53:50.000000' il fonctionne très bien. Une sélection montre une correspondance de date. Le 13 pour une raison quelconque ne fonctionne pas?
essayez d'utiliser d'autres formats, c'est facile. Remplacer les barres obliques avec des tirets, ou utiliser le STR_TO_DATE conversions. Cela aidera dans votre cas. La plage de valeurs d'HORODATAGE est '1970-01-01 00:00:01.000000' à '2038-01-19 03:14:07.999999'. La partie fractionnaire doivent toujours être séparés du reste du temps par un point décimal
J'ai vérifié sur ma fin, également essayé SQLFiddle (sqlfiddle.com/#!9/9b758/1/0) , il fonctionne. Essayez de vider votre DB, et de voir quel est le problème.
OriginalL'auteur Farside
Vous avez besoin d'essayer ceci:
ou autre, vous devez insérer les dates en utilisant le tiret séparateur (-) comme
SQL VIOLON DÉMO
OriginalL'auteur Rahul Tripathi
Toujours pas sûr de ce que la question est/était, peut-être une combinaison de CentOS et les versions de MySQL. J'ai changé la colonne datetime(6) au lieu de l'horodateur(6) et j'ai été en mesure d'importer toutes mes données avec succès.
OriginalL'auteur CycleGeek