2010-12-15 89 views
36

我有这个查询,但我想更改日期以基于服务器时间(或如果不可能由服务器时间通过发布日期)从1小时以前删除所有内容。我怎么做?Sql查询从1小时前选择?

DELETE FROM wp_posts 
WHERE post_date < '2008-06-06 19:18:00' 
    AND post_status = 'publish' 

回答

62

用途:

DELETE FROM wp_posts 
WHERE post_date < DATE_SUB(NOW(), INTERVAL 1 HOUR) 
    AND post_status = 'publish' 

参考:

+0

哦,也许没有那么多虚,这是一个更好的查询。谢谢 – Mark 2010-12-15 15:13:42

25

或者更简单:

SELECT NOW() - INTERVAL 1 HOUR; 

所以查询变为:

DELETE FROM wp_posts 
WHERE post_date < NOW() - INTERVAL 1 HOUR 
    AND post_status = 'publish' 
+2

在一些RDBSs中,时间应该是单引号,如:''1 Hour'' – Pedram 2016-11-02 00:22:30