如何通过sql查询在当前时间之前查看最后5分钟的记录我如何能够做到这一点。 时间戳的格式是
03/25/2014 14:00:00
我将此查询用于相同的
SELECT Time stamp FROM TABLE
WHERE S >1 AND SUBSTRING((Time stamp,15,2)-5)
这样可以做任何其他方式来做同样的事情
答案 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