您好我正在尝试从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);
答案 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