这在数据库包中用作传递数据的延迟。延迟是 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);