0

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

这就是我所拥有的:

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

在这种情况下,l_delay_mins = 2 分钟。

但是,trunc 会切断时间并默认为午夜,当转换完成时,它会给我一天中的一小部分,然后乘以 24*60,它总是大于 2,因此记录不会被延迟并且正在发送他们一到。

4

2 回答 2

3

使用INTERVAL

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

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

where last_updated < systimestamp - (l_delay_mins / 24 / 60)
于 2018-07-26T12:55:32.660 回答
0

对上述答案的小修改

使用INTERVAL

where last_updated <= systimestamp - (l_delay_mins * interval '1' minute);
于 2018-07-26T12:58:25.420 回答