Скрипт с примером вывода промежутка времени в часах,минутах, секундах (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
Если бы вы еще объяснили как этот скрипт работает, то цены бы вам не было ))