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

Valeur date/heure incorrecte Numéro d'erreur de la base de données :1292

J'ai découvert après la mise à niveau vers MySQL 5.7 que cette erreur commençait à se produire dans des situations aléatoires, même lorsque je ne fournissais pas de date dans la requête.

Cela semble être dû au fait que précédent les versions de MySQL prennent en charge les dates telles que 0000-00-00 00:00:00 (par défaut) cependant 5.7.4 a introduit quelques changements au NO_ZERO_DATE paramètre. Si vous avez toujours d'anciennes données présentes lorsque vous utilisez une version plus récente de MySQL, des erreurs aléatoires peuvent survenir.

J'avais besoin d'effectuer une requête comme celle-ci pour réinitialiser toutes les dates zéro à une autre date.

# If the columns supports NULL, use that
UPDATE table SET date_column = NULL WHERE date_column < '1000-01-01';

# Otherwise supply another default date
UPDATE table SET date_column = '1970-01-01' WHERE date_column < '1000-01-01';

Vous pouvez également ajuster le NO_ZERO_DATE paramètre, bien que notez ce que la documentation en dit :