2011-03-22 85 views
2

我知道为什么发生警告。MySQL 1292警告varchar日期值到数字转换

在一个varchar(20),列在MySQL设置为 '0000-00-00 00:00:00' 格式数值比较,例如:

select * from table where varchar_date_column > 0; 

执行...然后,我将有警告说:

Warning | 1292 | Truncated incorrect DOUBLE value: '2011-03-16 06:17:04' | 

所以我的问题是:有没有理由不去做这样?因为它反正在程序中运行。

+0

任何理由存储不'日期时间/日期timestamp'? – zerkms 2011-03-22 02:29:29

+0

索引原因 – DataHerder 2011-03-22 02:30:47

+0

呵呵?日期类型可以索引 – zerkms 2011-03-22 02:37:22

回答

2

由于您正在存储一个字符串,因此应该将其与字符串进行比较。

这应该给你相同的结果,而不会警告:

select * from table where varchar_date_column > '0'; 
+0

目前正在这个测试。很快会回来。 :) – DataHerder 2011-04-04 23:05:15

+0

实际...不起作用。比较不一样。完全相同的查询给出了具有0的行集合结果和具有'0'的空集合。 – DataHerder 2011-04-04 23:36:46