Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql insere uma data vazia se a data não estiver correta


Você pode jogar com o sql_mode para alterar o comportamento como o MySQL trata a data inválida.

De acordo com o manual MySQL , isso acontece quando você insere um valor de data incorreto:

Então, um valor zero é inserido e você realmente recebe um aviso sobre isso. Você pode ver isso com o 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

Você pode alterar esse comportamento para armazenar o valor inválido, se necessário (Manual MySQL ):

Por exemplo, o seguinte deve funcionar:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected

Ou você também pode alterar o comportamento de load data ou insira para relatar o erro:

Exemplo:
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