0

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

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

DELETE FROM table WHERE time='01.01.2010 WILDCARD';

时间是我写WILDCARD的地方

4

3 回答 3

4

使用DATE()功能。

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

于 2012-06-06T08:43:56.690 回答
1

要有效地使用 上的任何索引DateTimeColumn

DELETE FROM table 
WHERE DateTimeColumn >= '2010-01-01'
  AND DateTimeColumn <  '2010-01-02' ;
于 2012-06-06T08:53:35.290 回答
0

我建议使用BETWEEN

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

分别 23:59:61,因为我不知道 MySQL 是否适当地处理闰秒。

或者,我建议修改ybercube 的答案并执行

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

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

于 2012-06-06T09:07:09.520 回答