我在字段上使用str_to_date()作为插入命令的一部分,该字段包含格式正确的日期或空字符串。
对于带有空白字符串的行,str_to_date返回的结果日期为&00; 00:00:00'正如所料。
我可以使用IGNORE关键字作为INSERT语句的一部分来防止错误,但是在尝试将字段与其他值进行比较时,表中的ZERO日期会导致问题。我的目标是插入空字符串或空值。任何人都可以指出我正确的方向吗?
答案 0 :(得分:0)
一种解决方案是这样的:
insert into mytable
select
case
when varchar_date != '' then str_to_date(varchar_date, 'date_format')
end as date_column,
...
from
...
(每当varchar_date不为空时,调用str_to_date函数,如果varchar_date是一个有效的字符串,它将返回一个有效的日期,每当它为空时返回null)