Скрипт с примером вывода промежутка времени в часах,минутах, секундах (hh:mi:ss)
SET SERVEROUTPUT ON
declare
l_point1 NUMBER;
l_point2 NUMBER;
l_diff NUMBER;
l_time_s NUMBER;
-- Возвращает затраченное время в секундах
function get_time_diff(p_time number) return number
is
begin
return round( p_time/100 , 0);
end get_time_diff;
-- Возвращает секунды
function get_time_diff_ss(p_all_time number) return number
is
begin
return round(mod(p_all_time,60),0);
end get_time_diff_ss;
-- Возвращает минуты
function get_time_diff_mi(p_all_time number) return number
is
begin
return mod(floor(p_all_time/60),60);
end get_time_diff_mi;
-- Возвращает часы
function get_time_diff_hh(p_all_time number) return number
is
begin
return floor(p_all_time/(60*60));
end get_time_diff_hh;
-- Возвращает разницу в hh:mi:ss
function get_time_diff_hhmiss(p_all_time number) return varchar2
is
l_time_s NUMBER;
begin
l_time_s := round( p_all_time/100 , 0);
return lpad( floor(round(l_time_s /3600,2)) ,2,'0')
||':'||lpad( mod(floor(l_time_s /60),60) ,2,'0')
||':'||lpad( round(mod(l_time_s ,60),0) ,2,'0');
end get_time_diff_hhmiss;
begin
l_point1 := dbms_utility.get_time();
dbms_lock.sleep(5);
l_point2 := dbms_utility.get_time();
l_diff := l_point2 - l_point1;
l_time_s := get_time_diff(l_diff);
dbms_output.put_line('весь период времени в секундах = '|| l_time_s || 's');
dbms_output.put_line('только секунды = '|| get_time_diff_ss(l_time_s)||'s' );
dbms_output.put_line('только минуты = '|| get_time_diff_mi(l_time_s)||'m' );
dbms_output.put_line('только часы = '|| get_time_diff_hh(l_time_s)||'h' );
dbms_output.put_line('h:m:s = '|| get_time_diff_hh(l_time_s)||'h:'
||get_time_diff_mi(l_time_s)
||'m:'||get_time_diff_ss(l_time_s)||'s' );
dbms_output.put_line('hh:mi:ss = '|| lpad(get_time_diff_hh(l_time_s),2,'0')
||':'||lpad(get_time_diff_mi(l_time_s),2,0)
||':'||lpad(get_time_diff_ss(l_time_s),2,'0') );
dbms_output.put_line('get_time_diff_hhmiss = '|| get_time_diff_hhmiss(l_diff));
end;
/
весь период времени в секундах = 5s
только секунды = 5s
только минуты = 0m
только часы = 0h
h:m:s = 0h:0m:5s
hh:mi:ss = 00:00:05
get_time_diff_hhmiss = 00:00:05

Если бы вы еще объяснили как этот скрипт работает, то цены бы вам не было ))