CREATE OR REPLACE FUNCTION F_GET_DIFF_TIME(START_TIME IN DATE,
END_TIME IN DATE)
RETURN VARCHAR2 IS
DIFF_TIME VARCHAR2(50);
BEGIN
SELECT TDAY || '天' || THOUR || '时' || TMINUTE || '分' || ROUND((TT - TMINUTE) * 60) || '秒' INTO DIFF_TIME
FROM (SELECT TDAY,
THOUR,
TRUNC((TT - THOUR) * 60) TMINUTE,
(TT - THOUR) * 60 TT
FROM (SELECT TDAY,
TRUNC((TT - TDAY) * 24) THOUR,
(TT - TDAY) * 24 TT
FROM (SELECT TO_NUMBER(END_TIME - START_TIME) AS TT,
TRUNC(TO_NUMBER(END_TIME - START_TIME)) AS TDAY
FROM (SELECT START_TIME, END_TIME FROM dual))));
RETURN DIFF_TIME;
END;
这个函数在ADS当中创建需要将选项中的红框内的两个勾掉 可以直接在命令窗口创建,反而在函数编辑窗口总是报错。。。
创建好以后 测试
select F_GET_DIFF_TIME( to_date('2019-07-16 18:10:10','yyyy-MM-dd hh24:mi:ss'),to_date('2019-07-18 12:40:50','yyyy-MM-dd hh24:mi:ss')) as 时间差 from dual
测试无误 至此已经简单的制作,使用了一个函数了。