如何使用SQLselect最近24小时的logging?

我正在寻找一个可以用来检索过去24小时logging的where子句?

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

MySQL

 SELECT * FROM mytable WHERE record_date >= CURDATE() - INTERVAL 1 DAY 

SQL Server

 SELECT * FROM mytable WHERE record_date >= DATEADD(day, -1, GETDATE()) 

Oracle

 SELECT * FROM mytable WHERE record_date >= SYSDATE - 1 

PostgreSQL

 SELECT * FROM mytable WHERE record_date >= NOW() - '1 day'::INTERVAL 

Redshift

 SELECT * FROM mytable WHERE record_date >= GETDATE() - '1 day'::INTERVAL 

SQLite

 SELECT * FROM mytable WHERE record_date >= datetime('now','-1 day') 

MS Access

 SELECT * FROM mytable WHERE record_date >= (Now - 1) 

MySQL:

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

INTERVAL可以在年,月,日,时,分,秒

例如,在最后10分钟

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

哪个SQL没有被指定,SQL 2005/2008

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

如果您使用的是2008年增加的准确性datetypes,则可以使用新的sysdatetime()函数,而如果使用UTC时间在内部交换到UTC调用时也是如此。

在postgres中,假设你的字段types是一个时间戳:

select * from table where date_field>(now() – interval '24 hour');

 select ... from ... where YourDateColumn >= getdate()-1 

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

 SELECT * FROM `orders` WHERE FROM_UNIXTIME(order_ts) > DATE_SUB(CURDATE(), INTERVAL 1 DAY) 
 SELECT * FROM tableName WHERE datecolumn >= dateadd(hour,-24,getdate()) 

在SQL Server中(最近24小时):

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

你好我现在从原来的post过去了很多时间,但我有一个类似的问题,我想分享。

我有这种格式YYYY-MM-DD hh:mm:ss的date时间字段,我想访问一整天,所以这里是我的解决scheme。

MySQL中的函数DATE():提取date或date时间expression式的date部分。

 SELECT * FROM `your_table` WHERE DATE(`your_datatime_field`)='2017-10-09' 

在这一天,我得到了所有的行登记。

我希望它帮助任何人。