如何查询最后5分钟的记录?

时间:2014-04-22 19:06:03

标签: sql oracle

如何通过sql查询在当前时间之前查看最后5分钟的记录我如何能够做到这一点。 时间戳的格式是

03/25/2014 14:00:00

我将此查询用于相同的

SELECT Time stamp FROM TABLE 
WHERE S >1 AND SUBSTRING((Time stamp,15,2)-5) 

这样可以做任何其他方式来做同样的事情

4 个答案:

答案 0 :(得分:7)

如果您的时间戳是日期列,则可以执行以下操作:

select t.*
from table t
where t.timestamp >= sysdate - 5/(24*60)

如果timestamp是字符列,事情会更有趣。然后你需要把它翻译成日期/时间:

select t.*
from table t
where to_date(t.timestamp, 'MM/DD/YYYY HH24:MI:SS') >= sysdate - 5/(24*60)

答案 1 :(得分:4)

select *
from the_table
where timestamp_column <= timestamp '2014-03-25 14:00:00' - interval '5' minute;

这假定使用数据类型timestamp_column定义timestamp

如果不是,您应该立即停止 并重新定义您的表格以使用正确的数据类型。


表达式timestamp '2014-03-25 14:00:00'是(ANSI SQL)时间戳 literal

它等同于to_timestamp('2014-03-25 14:00:00', 'yyyy-mm-dd hh24:mi:ss'),但我更喜欢ANSI文字,因为它减少了输入并且可以跨多个DBMS工作。

答案 2 :(得分:2)

如果您使用的是MySQL且timestamp列的数据类型为datetime,则可以

SELECT Timestamp 
FROM your_table
WHERE Timestamp >= now() - interval 5 minute

答案 3 :(得分:1)

这是一个如何在oracle中获得5分钟前的例子。从时间戳中减去1的增量,其中1是一天。所以5分钟就是一天的5 /(24小时* 60分钟)。

SELECT sysdate, sysdate-(5/(24*60)) as min_Ago5 from dual