2012-01-16 5 views
1

Я это заявление:
Как сравнить отметку времени в PL/SQL

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
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; 
/
Смежные вопросы