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

Código de erro 1292 Mysql DateTime


Veja o valor:
'2013-31-01 16:00:40'

Isso está tentando usar um mês de 31.

Não está claro se isso significa apenas que seus dados de teste estão errados ou se você precisa alterar estas linhas:
SELECT SUBSTRING(DATE,3,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,1,1) FROM db.test_table INTO LDAY;

para:
SELECT SUBSTRING(DATE,1,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,4,2) FROM db.test_table INTO LDAY;

Observe a mudança de 1 para 2 para a substring começando em 1 de qualquer maneira, e a mudança da segunda posição inicial de 3 para 4. Você quer valores de mês e dia de dois dígitos, certo? Se seu formato de dados for realmente D/M/YYYY (ou seja, usando apenas dois dígitos quando necessário), você não poderá usar posições de substring fixas.