wake-up-neo.net

DATEDIFF-Funktion in Oracle

Ich muss Oracle verwenden, aber die DATEDIFF-Funktion funktioniert in Oracle DB nicht.

Wie schreibe ich den folgenden Code in Oracle? Ich habe einige Beispiele mit INTERVAL oder TRUNC gesehen.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
25
user3601310

In Oracle können Sie einfach zwei Daten subtrahieren und die Differenz in Tage erhalten. Beachten Sie auch, dass Sie in Oracle im Gegensatz zu SQL Server oder MySQL keine select -Anweisung ohne eine from -Klausel ausführen können. Eine Möglichkeit, dies zu umgehen, besteht darin, die integrierte Dummy-Tabelle dual zu verwenden:

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

Subtrahieren Sie einfach die beiden Daten:

select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;

Das Ergebnis ist die Differenz in Tagen.

Weitere Details finden Sie im Handbuch:
https://docs.Oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042

Sie können einfach zwei Daten subtrahieren. Du musst es zuerst mit to_date:

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

Das Ergebnis ist in Tagen, zur Differenz dieser beiden Daten ist -1 (Sie können die beiden Daten tauschen, wenn Sie möchten). Wenn Sie es in Stunden haben möchten, multiplizieren Sie einfach das Ergebnis mit 24.

3
Patrick Hofman