MySQL INSERT INTO OPÇÃO SET

votos
0

Eu estou tentando copiar uma tabela para as colunas de uma tabela diferente, mas os campos de data não são válidos (Data são como '00000000') para algumas das colunas, então eu estou tentando verificar se a data é válida e eu m tentando configurá-lo NULL se assim. Exemplo,

INSERT INTO table1 (ID, FirstName, LastName, @BD) SELECT * FROM table2
SET Birthday = IF(@BD = '00000000', NULL, CAST(@BD as DATE))

Este formato funciona para carga enquanto o carregamento de dados de um arquivo CSV, mas dá e de erro dizendo que a sintaxe é errado. Além disso, colunas Quadro2 Médias estão neste ID ordem, nome, sobrenome, e de aniversário. Desde já, obrigado!

Publicado 19/09/2018 em 13:33
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

Já experimentou a conversão durante a seleção no lugar

INSERT INTO table1 (ID, FirstName, LastName, Birthday) 
SELECT ID, FirstName, LastName,
  CASE BirthDay 
    WHEN '00000000' THEN NULL
    ELSE CAST(BirthDay as DATE) 
  END 
FROM table2
Respondeu 19/09/2018 em 13:44
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more