Puoi giocare con sql_mode
per modificare il comportamento in cui MySQL gestisce la data non valida.
Secondo il manuale MySQL , questo accade quando inserisci un valore di data errato:
Quindi viene inserito un valore zero e ricevi effettivamente un avviso al riguardo. Puoi vederlo con show warnings
comando.
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
È possibile modificare questo comportamento per memorizzare il valore non valido, se necessario (Manuale MySQL ):
Ad esempio, dovrebbe funzionare quanto segue:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
Oppure puoi anche modificare il comportamento di caricare i dati oppure inserisci per segnalare l'errore:
Esempio:
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