Ich muss Oracle verwenden, aber die DATEDIFF-Funktion funktioniert nicht in Oracle DB.
Wie kann ich den folgenden Code in Oracle schreiben? Ich sah einige Beispiele mit INTERVAL oder TRUNC.
SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
In Oracle können Sie einfach zwei Daten subtrahieren und erhalten die Differenz in Tagen. 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, ist die Verwendung der eingebauten Dummy-Tabelle dual
:
SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -
TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM dual
Ziehen Sie einfach die beiden Daten ab:
select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;
Das Ergebnis ist die Differenz in Tagen.
Weitere Einzelheiten 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. Sie müssen es zuerst mit "to_date" umwandeln:
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, die Differenz dieser beiden Daten ist -1
(du kannst die beiden Daten vertauschen, wenn du willst). Wenn Sie es in Stunden haben möchten, multiplizieren Sie das Ergebnis einfach mit 24.