CREATE OR REPLACE FUNCTION sec_div(sec NUMBER) 
RETURN VARCHAR2
IS
  i NUMBER(20,14);
  h INTEGER;
  m INTEGER;
  s INTEGER;
  result VARCHAR2(20) ;
BEGIN
  i:=sec/3600;
  IF trunc(i)>0 THEN
    h:=trunc(i);
    i:=i-trunc(i);
  ELSE 
    h:=0;  
  END IF;
  IF i*60>0 THEN
    m:=trunc(i*60);
    i:=i*60-trunc(i*60);
  ELSE 
    m:=0;  
  END IF;
  IF i*60>0 THEN
    s:=round(i*60);
  ELSE 
    s:=0;  
  END IF;
  result:=to_char(h)||'时'||to_char(m)||'分'||to_char(s)||'秒';
  RETURN(Result);
END sec_div;
/
SQL> select sec_div(1000) from dual;SEC_DIV(1000)
--------------------------------------------------------------------------------
0时16分40秒以上是某位人兄提供.