SYSDATE-时间戳以检索最近2分钟的订单

时间:2018-07-26 12:49:55

标签: sql oracle timestamp sysdate

这在数据库包中用作延迟传递数据。延迟是2分钟,所以我只需要检索记录在数据库中2分钟或更长时间即可。

这就是我所拥有的:

((SYSDATE - trunc(last_updated))*24*60) > l_delay_mins;

l_delay_mins = 2分钟。

但是,截断会截断时间并将其默认为午夜,完成转换后,它会给出一天的一部分,然后乘以24 * 60(始终大于2),因此记录不会被延迟并在他们到达时立即发送。

2 个答案:

答案 0 :(得分:2)

使用INTERVAL

where last_updated < systimestamp - (l_delay_mins * interval '1' minute);

这是没有INTERVAL的同一件事,只是一分钟只是一天的一小部分(与您尝试过的类似):

where last_updated < systimestamp - (l_delay_mins / 24 / 60)

答案 1 :(得分:0)

对以上答案的小修改

使用INTERVAL

where last_updated <= systimestamp - (l_delay_mins * interval '1' minute);