Mysql
 sql >> Database >  >> RDS >> Mysql

mysql inserisce una data vuota se la data non è corretta

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