从oracle表中获取最后5分钟的数据

时间:2015-03-06 11:40:49

标签: mysql oracle

您好我正在尝试从oracle表中获取最后5分钟的数据。查询写在下面,它不能以某种方式工作。

select * from mytable where (time_to_sec(timediff(now(),mytable.time_stamp)) <= 300)

显示此错误ORA-00904。

我再试了一次查询。

select * from mytable where TIME_STAMP > (sysdate - numtodsinterval(5,'minute'))

现在,您能告诉我最近5分钟获取数据的查询以及删除表中数据超过12小时的查询。谢谢。

我需要oracle和mysql中的查询。我试过的mysql查询就在这里。

delete from mytable where (time_to_sec(timediff(now(),time_stamp))/3600 >12);

1 个答案:

答案 0 :(得分:0)

在oracle中从时间戳减1表示一天。而你可以减去一小部分。所以,

  current_timestamp - (5/(24*60))

从5分钟前给出你的日期。使用它我们可以查询:

select * from mytable where TIME_STAMP > current_timestamp - (5/(24*60)

哪个应该给你需要的结果。我发现这种方法比使用特殊功能更直接,更简单。

如果你想过滤掉过去12小时内的数据,你可以这样查询:

select * from mytable where TIME_STAMP <= current_timestamp - 0.5