Oracle DB,如何向TIMESTAMP添加秒并将结果与​​当前时刻进行比较

时间:2017-01-20 10:29:51

标签: sql oracle date time timestamp

在函数中,我需要为TIMESTAMP(6)类型的变量添加一定的秒数,并比较当前时刻是否在结果之前。

如何在TIMESTAMP变量中添加秒数并以格式获取当前时间,以便将其与结果进行比较?如何为这种情况形成表达式?

要添加的秒数存储在INTEGER类型变量中。

1 个答案:

答案 0 :(得分:1)

这是一种向时间戳添加秒数并对系统时间执行检查的方法:

select timestamp '2017-01-20 12:00:00.000000' as value,
       timestamp '2017-01-20 12:00:00.000000' + interval '10' second as valuePlus10,
       case
         when timestamp '2017-01-20 12:00:00.000000' + interval '10' second > systimestamp then '> timestamp'
         else '< timestamp'
       end as checkVal
from dual

如果你有一些已经存储在某个数字变量中的秒数,你可以使用类似的东西:

declare
    vSeconds number := 10;
    vTimestamp1 timestamp(6);
    vTimestamp2 timestamp(6);
begin
    select vTimestamp1 + NUMTODSINTERVAL(vSeconds, 'second')
    into vTimestamp2
    from dual;
end;