我正在寻找一个where子句,可用于检索过去24小时的记录?


当前回答

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

其他回答

在postgres中,假设你的字段类型是时间戳:

Select * from date_field > (now() - interval '24小时');

在SQL Server中(过去24小时):

SELECT  *
FROM    mytable
WHERE   order_date > DateAdd(DAY, -1, GETDATE()) and order_date<=GETDATE()

MySQL:

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 24 HOUR)

时间间隔可以是年、月、日、小时、分、秒

比如,在最后十分钟

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 10 MINUTE)
SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

没有指定SQL 2005 / 2008

SELECT yourfields from yourTable WHERE yourfieldWithDate > dateadd(dd,-1,getdate())

如果您使用的是2008年增加的精度日期类型,则使用新的sysdatetime()函数,如果使用UTC时间内部交换到UTC调用,同样如此。