MySQL INSERT INTO SELECT SET

votos
0

Estoy tratando de copiar una tabla con las columnas de una tabla diferente, pero los campos de fecha no son válidos (Fecha son como '00000000') para algunas de las columnas, así que estoy tratando de comprobar si la fecha es válida y estoy m tratando de configurarlo NULL si es así. Ejemplo,

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 mientras la carga de datos desde un archivo CSV pero da error diciendo y la sintaxis es incorrecta. Además, las columnas Table2 pertenecen a esta identificación de la orden, Nombre, Apellido, y cumpleaños. ¡Gracias por adelantado!

Publicado el 19/09/2018 a las 13:33
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
3

¿Usted ha intentado convertir en su lugar seleccione

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
Respondida el 19/09/2018 a las 13:44
fuente por usuario

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