0

我正在尝试将一个表复制到另一个表的列,但某些列的日期字段无效(日期类似于“00000000”)所以我试图检查日期是否有效并且我如果是这样,我试图将其设置为 NULL。例子,

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

这种格式在从 CSV 文件加载数据时适用于 LOAD,但会给出错误提示语法错误。此外,table2 列的顺序为 ID、FirstName、LastName 和 Birthday。提前致谢!

4

1 回答 1

3

您是否尝试过在选择期间进行转换

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
于 2018-09-19T13:44:20.463 回答