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

mysql insère une date vide si la date n'est pas correcte

Vous pouvez jouer avec le sql_mode pour modifier le comportement de la manière dont MySQL gère la date invalide.

Selon le Manuel MySQL , cela se produit lorsque vous insérez une valeur de date incorrecte :

Ainsi, une valeur nulle est insérée et vous obtenez en fait un avertissement à ce sujet. Vous pouvez le voir avec le show warnings commande.

insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
show warnings
-- Warning  1264    Out of range value for column 'date' at row 1

Vous pouvez modifier ce comportement pour stocker la valeur non valide, si nécessaire (Manuel MySQL ):

Par exemple, ce qui suit devrait fonctionner :

set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected

Ou, vous pouvez également modifier le comportement de charger les données ou insérez pour signaler l'erreur :

Exemple :

set @@sql_mode='traditional';
insert into TableName (`date`) values ('2015-02-29');
Error Code: 1292. Incorrect date value: '2015-02-29' for column 'date' at row 1