我正在寻找在数据库中找到开始时间和结束时间之间的持续时间的最简单方法。 Actual and expected date
尝试过“ DATEDIFF”,但收到此错误“ ORA-00904:“ DATEDIFF”:无效的标识符”使用的格式:DATEDIFF(时间,START_TIME,END_TIME)为DURATION
需要修复此问题,PFA需要查看实际的START_TIME和END_TIME,我正在另外一列中查找这两个的持续时间
您可以在Oracle中使用以下内容获取所请求格式的值
create or replace function DATEDIFF_IN_ORC(P_START_TIME IN VARCHAR2, P_END_TIME IN VARCHAR2)
RETURN VARCHAR2
IS
START_TIME DATE;
END_TIME DATE;
L_RESULT VARCHAR2(100);
BEGIN
START_TIME:=TO_DATE(P_START_TIME,'MM/DD/YYYY HH24:MI:SS');
END_TIME:=TO_DATE(P_END_TIME,'MM/DD/YYYY HH24:MI:SS');
select ltrim(lpad(TO_CHAR(TRUNC(24*(end_time-start_time)) ) || TO_CHAR(TRUNC(end_time) +
(end_time-start_time) , ':MI:SS' ) , 12, ' ')) INTO L_RESULT from dual;
return l_result;
END;
像下面这样打电话
select DATEDIFF_IN_ORC(START_TIME,END_TIME) from dual;
输出:-
0:02:34