我想删除特定日期的所有条目,但在我的日期字段中,我也有时间。
我可以使用类似通配符的东西吗?像:
DELETE FROM table WHERE time='01.01.2010 WILDCARD';
时间是我写WILDCARD的地方
答案 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完全等效,或者在某些情况下是否存在任何差异,例如转换问题或日期和日期时间格式之间的延迟。