过滤有效日期-mysql

时间:2014-07-22 15:55:41

标签: php mysql sql csv

我导入的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。一种数据类型不匹配将停止所有其他导入

2 个答案:

答案 0 :(得分:1)

将日期转换为unix时间戳并检查

SELECT * FROM table WHERE unix_timestamp(date_input) >0

注意:对于非日期值,unix_timestamp将返回0(零)

答案 1 :(得分:0)

从字符串转换为日期的函数称为STR_TO_DATE(),它返回NULL非法日期,因此基本上只需要你所需要的。您还可以使用它将字符串复制到实际日期列中。