Как сравнить временную метку в PL / SQL - PullRequest
1 голос
/ 16 января 2012

У меня есть это утверждение:

create table times (time_in timestamp, time_out timestamp);
insert into times values(to_timestamp('02-MAY-11 07.57.00.000000 AM'), to_timestamp('02-MAY-11 07.30.00.000000 PM'));
select extract(hour from(time_out-time_in))||':'||extract(minute from(time_out-time_in)) from times;

EXTRACT(HOURFROM(TIME_OUT-TIME_IN))||':'||EXTRACT(MINUTEFROM(TIME_OUT-TIME_IN))   
--------------------------------------------------------------------------------- 
11:33

А теперь я хочу сравнить приведенный выше результат. Например: IF [result] > [8 hours] THEN ...

Как это сделать?

1 Ответ

1 голос
/ 16 января 2012
SELECT *
FROM times
WHERE time_out - time_in > interval '8' hour

Внутри процедуры PL / SQL это будет выглядеть так:

declare
  result interval day to second;
begin

  -- !!! make sure this select returns only one row, or use a cursor !!!
  select time_out - time_in 
     into result
  from times; 

  if (result > interval '8' hour) then
    dbms_output.put_line('greater');
  end if;
end;
/
...