我导入的csv文件包含2个字段,即sales,date
。 Csv文件将如下所示
100,2014-07-01
100,2014-07-03
100,2014-07-04
100,garbaze date
我已迁移到mysql,如下所示
id date_input
100 2014-07-01
100 2014-07-3
100 2014-07-04
100 garbaze date
不幸的是date_input是varchar,现在我需要删除garbaze值并仅显示实际日期
id date_input
100 2014-07-01
100 2014-07-3
100 2014-07-04
我试过
SELECT * FROM TABLE WHERE date_input LIKE '20%'
但有时候garbaze可能 20-date-garbaze 任何想法?
我无法生成date_input的数据类型日期,因为我正在使用loaddata将记录从csv导入到mysql。一种数据类型不匹配将停止所有其他导入
答案 0 :(得分:1)
将日期转换为unix时间戳并检查
SELECT * FROM table WHERE unix_timestamp(date_input) >0
注意:对于非日期值,unix_timestamp将返回0(零)
答案 1 :(得分:0)
从字符串转换为日期的函数称为STR_TO_DATE(),它返回NULL
非法日期,因此基本上只需要你所需要的。您还可以使用它将字符串复制到实际日期列中。