Du kan spela med sql_mode
för att ändra beteendet hur MySQL hanterar det ogiltiga datumet.
Enligt MySQL-manualen , detta händer när du infogar ett felaktigt datumvärde:
Så ett nollvärde infogas och du får faktiskt en varning om det. 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 ändra detta beteende för att lagra det ogiltiga värdet om du behöver det (MySQL-manual ):
Till exempel bör följande fungera:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
Eller så kan du också ändra beteendet för ladda in data eller infoga för att rapportera felet:
Exempel:
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