需要一种简单的方法来查找开始日期和结束日期之间的持续时间

问题描述 投票:0回答:1

我正在寻找在数据库中找到开始时间和结束时间之间的持续时间的最简单方法。 Actual and expected date

尝试过“ DATEDIFF”,但收到此错误“ ORA-00904:“ DATEDIFF”:无效的标识符”使用的格式:DATEDIFF(时间,START_TIME,END_TIME)为DURATION

需要修复此问题,PFA需要查看实际的START_TIME和END_TIME,我正在另外一列中查找这两个的持续时间

sql duration
1个回答
0
投票

您可以在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
© www.soinside.com 2019 - 2024. All rights reserved.