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

Valor DateTime incorreto '0000-00-00 00:00:00' - Date_Sub() em Tendo


Primeira opção:

Este aviso provavelmente pode ser devido ao SQL_MODE .

De acordo com a documentação do mysql "Se o modo SQL NO_ZERO_DATE ou NO_ZERO_IN_DATE estiver ativado, datas zero ou parte das datas não serão permitidas.". Portanto, esta pode ser a causa do seu INSERT com '0000-00-00 00:00:00' falha.

Você pode verificar seu modo sql executando isto:
SELECT @@sql_mode;

e se algum dos NO_ZERO_DATE ou NO_ZERO_IN_DATE estão definidos, então você pode apenas:
SET sql_mode = '';

Segunda opção

A outra opção é que está falhando por causa do STRICT_TRANS_TABLES mode.Como a documentação do mysql diz:

O mesmo é válido para datetime.

Então você tem que desativar o MODO STRICT OU se desativá-lo não for uma opção - modifique a consulta para que ela não retorne um resultado de data/data e hora inválidos