sql >> Base de Datos >  >> RDS >> Mysql

mysql inserta una fecha vacía si la fecha no es correcta

Puedes jugar con el sql_mode para cambiar el comportamiento de cómo MySQL maneja la fecha no válida.

Según el manual de MySQL , esto sucede cuando inserta un valor de fecha incorrecto:

Entonces, se inserta un valor cero y en realidad recibe una advertencia al respecto. Puedes verlo 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

Puede cambiar este comportamiento para almacenar el valor no válido, si lo necesita (Manual de MySQL ):

Por ejemplo, lo siguiente debería funcionar:

set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected

O también puede cambiar el comportamiento de cargar datos o insertar para reportar el error:

Ejemplo:

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