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

SYSDATE - Timestamp to retrieve orders from last 2 minutes

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

这是我的:

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

l_delay_mins = 在本例中为 2 分钟。

但是,trunc 会截断时间并默认为午夜,当转换完成时,它会给我当天的小数部分,然后乘以 24*60,它总是大于 2,所以记录不是被延迟,一到达就发送。

使用INTERVAL:

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

没有 INTERVAL 也是同样的事情,但是一分钟只是一天的一小部分(你试过的那种):

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

对上述答案的小修改

使用INTERVAL:

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