Mysql
 sql >> Base de données >  >> RDS >> Mysql

Code d'erreur 1292 DateHeure MySQL

Regardez la valeur :

'2013-31-01 16:00:40'

C'est essayer d'utiliser un mois sur 31.

Il n'est pas clair si cela signifie simplement que vos données de test sont erronées ou si vous devez modifier ces lignes :

SELECT SUBSTRING(DATE,3,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,1,1) FROM db.test_table INTO LDAY;

à :

SELECT SUBSTRING(DATE,1,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,4,2) FROM db.test_table INTO LDAY;

Notez le changement de 1 à 2 pour la sous-chaîne commençant à 1 de toute façon, et le changement de la deuxième position de départ de 3 à 4. Vous voulez des valeurs de mois et de jour à deux chiffres, n'est-ce pas ? Si votre format de données est réellement J/M/AAAA (c'est-à-dire en n'utilisant que deux chiffres lorsqu'ils sont requis), vous ne pourrez pas utiliser de positions de sous-chaîne fixes.