我希望SQL
查询fetch/select
只能从前半小时获取的记录。例如,如果我的调度程序在下午2点运行,然后在2:30再运行,则在2:30运行期间,它应该仅使用列{4}}中的列created_timestamp
从下午2点到下午2点30分之间选择行。作为unix epoch格式的时间例如:
|created_timestamp|
|1497355750350 |
|1497506182344 |
答案 0 :(得分:2)
我们可以用Oracle日期算术。从另一个日期中减去一个日期会将间隔作为小数。乘以86400可得出秒数。所以这是当前的unix expoch:
(sysdate - date '1970-01-01') * 86400
这意味着您的查询将类似于
select * from your_table
where created_timestamp >= (:last_run_time - date '1970-01-01') * 86400
诀窍是你的调度程序需要传入上一次运行的时间 - last_run_time
- 来获取自那时以来添加的所有记录。
答案 1 :(得分:0)
您可以执行闪回查询
SELECT * FROM TABLE
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '30' MINUTE);