create or replace function Fun_SecondToTime(iamt number) return varchar
as
mytime varchar(24);
begin
select to_char(to_date(19700101,'yyyymmdd')+(iamt/60/60/24)+(8/24),'yyyy-mm-dd hh24:mi:ss')
into mytime
from dual;
return mytime;
end Fun_SecondToTime;
CREATE OR REPLACE FUNCTION FUN_DBA_DAY_TO_SECS(P_DATE IN VARCHAR2)
RETURN NUMBER
IS
O_DATE DATE;
VAR_DAYS NUMBER;
VAR_NUMBER NUMBER;
VAR_HH24 NUMBER;
VAR_MI NUMBER;
VAR_SS NUMBER;
VAR_DAYSEC NUMBER;
BEGIN
O_DATE := TO_DATE(P_DATE, 'YYYY-MM-DD HH24:MI:SS');
VAR_DAYS := FLOOR(O_DATE - TO_DATE('2001-01-01', 'YYYY-MM-DD'));
VAR_NUMBER := 978278400 + VAR_DAYS * 86400;
VAR_HH24 := TO_NUMBER(TO_CHAR(O_DATE, 'HH24'));
VAR_MI := TO_NUMBER(TO_CHAR(O_DATE, 'MI'));
VAR_SS := TO_NUMBER(TO_CHAR(O_DATE, 'SS'));
VAR_DAYSEC := VAR_HH24 * 3600 + VAR_MI * 60 + VAR_SS;
VAR_NUMBER := VAR_NUMBER + VAR_DAYSEC;
RETURN VAR_NUMBER;
END;