按日期删除,是否有通配符?

时间:2012-06-06 08:42:50

标签: mysql

我想删除特定日期的所有条目,但在我的日期字段中,我也有时间。

我可以使用类似通配符的东西吗?像:

DELETE FROM table WHERE time='01.01.2010 WILDCARD';

时间是我写WILDCARD的地方

3 个答案:

答案 0 :(得分:4)

使用DATE()功能。

DELETE FROM table WHERE DATE(time) = '2010-01-01'

答案 1 :(得分:1)

有效使用DateTimeColumn上的索引:

DELETE FROM table 
WHERE DateTimeColumn >= '2010-01-01'
  AND DateTimeColumn <  '2010-01-02' ;

答案 2 :(得分:0)

我建议使用BETWEEN

DELETE FROM table 
WHERE DateTimeColumn BETWEEN '2010-01-01 00:00:00' AND '2010-01-01 23:59:59';

RESP。 23:59:61,因为我不知道MySQL是否会处理闰秒。

或者,我建议修改ybercube's answer并执行

DELETE FROM table 
WHERE DateTimeColumn >= '2010-01-01 00:00:00'
  AND DateTimeColumn <  '2010-01-02 00:00:00';

请注意,我不确定此第二个解决方案是否与ybercube完全等效,或者在某些情况下是否存在任何差异,例如转换问题或日期和日期时间格式之间的延迟。