Du kan spille med sql_mode
for at ændre adfærden, hvordan MySQL håndterer den ugyldige dato.
Ifølge MySQL-manualen , dette sker, når du indsætter en forkert datoværdi:
Så der indsættes en nulværdi, og det får du faktisk en advarsel om. Du kan se det med show warnings
kommando.
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
Du kan ændre denne adfærd for at gemme den ugyldige værdi, hvis du har brug for det (MySQL-manual ):
For eksempel burde følgende virke:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
Eller du kan også ændre adfærden for indlæs data eller indsæt for at rapportere fejlen:
Eksempel:
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