Подтвердить что ты не робот

Функция DATEDIFF в Oracle

Мне нужно использовать Oracle, но функция DATEDIFF не работает в Oracle DB.

Как написать следующий код в Oracle? Я видел несколько примеров, используя INTERVAL или TRUNC.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
4b9b3361

Ответ 1

В Oracle вы можете просто вычесть две даты и получить разницу в днях. Также обратите внимание, что в отличие от SQL Server или MySQL в Oracle вы не можете выполнить оператор select без предложения from. Один из способов - использовать встроенную фиктивную таблицу, dual:

SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -  
       TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM   dual

Ответ 3

Вы можете просто вычесть две даты. Сначала вы должны использовать его, используя to_date:

select to_date('2000-01-01', 'yyyy-MM-dd')
       - to_date('2000-01-02', 'yyyy-MM-dd')
       datediff
from   dual
;

Результат в днях, разница в этих двух датах -1 (вы можете поменять две даты, если хотите). Если вам нравится иметь это в часах, просто умножьте результат на 24.