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


当前回答

在Oracle中(过去24小时):

SELECT  *
FROM    my_table
WHERE   date_column >= SYSDATE - 24/24

如果,出于任何原因,你有未来日期的行,你可以使用between,像这样:

SELECT  *
FROM    my_table
WHERE   date_column BETWEEN (SYSDATE - 24/24) AND SYSDATE

其他回答

没有指定SQL 2005 / 2008

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

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

在Oracle中(过去24小时):

SELECT  *
FROM    my_table
WHERE   date_column >= SYSDATE - 24/24

如果,出于任何原因,你有未来日期的行,你可以使用between,像这样:

SELECT  *
FROM    my_table
WHERE   date_column BETWEEN (SYSDATE - 24/24) AND SYSDATE
SELECT * 
FROM tableName 
WHERE datecolumn >= dateadd(hour,-24,getdate())

如果考虑的时间戳是UNIX时间戳 您需要首先将UNIX时间戳(例如1462567865)转换为mysql时间戳或数据

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