Sql query to select from 1 hour ago?
SqlMysqlSql Problem Overview
I have this query but I want to change the date to delete everything that is from more than 1 hour ago based on the server time (or if not possible by server time by post date). How do I do that?
DELETE FROM wp_posts
WHERE post_date < '2008-06-06 19:18:00'
AND post_status = 'publish'
Sql Solutions
Solution 1 - Sql
Use:
DELETE FROM wp_posts
WHERE post_date < DATE_SUB(NOW(), INTERVAL '1' HOUR)
AND post_status = 'publish'
Reference:
Solution 2 - Sql
Or even simpler:
SELECT NOW() - INTERVAL 1 HOUR;
So the query becomes:
DELETE FROM wp_posts
WHERE post_date < NOW() - INTERVAL 1 HOUR
AND post_status = 'publish'
Solution 3 - Sql
Subdate function works too!
SELECT subdate(current_timestamp, interval 1 hour)
Solution 4 - Sql
DELETE from table where date_add < NOW() - INTERVAL 1 HOUR;
to see the time run this sql :
select NOW() - INTERVAL 1 HOUR as s1 , NOW() as s2;