Нужен простой способ найти продолжительность между датой начала и датой окончания - PullRequest
0 голосов
/ 08 мая 2020

Я ищу самый простой способ найти продолжительность времени между начальным и конечным временем данных в базе данных. Фактическая и ожидаемая дата

Попытка "DATEDIFF", но получение этой ошибки "ORA-00904:" DATEDIFF ": недопустимый идентификатор" Используемый формат: DATEDIFF (время, START_TIME, END_TIME) AS DURATION

Нужна помощь в исправлении, PFA, чтобы увидеть фактические START_TIME и END_TIME, я ищу продолжительность этих двух в отдельном столбце

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете использовать приведенное ниже в 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
...