2015-02-09 8 views
13

Ich brauche Oracle, aber DATEDIFF-Funktion funktioniert nicht in Oracle DB.DATEDIFF-Funktion in Oracle

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; 
+1

möglich Duplikat [Berechnen Differenz zwischen 2 Datum/Zeit in Oracle SQL] (http://stackoverflow.com/questions/1096853/calculate- Unterschied zwischen 2-date-mal-in-oracle-sql) – Jens

Antwort

16

In Oracle, können Sie einfach zwei Tage, subtrahieren und die Differenz in Tagen bekommen. Beachten Sie auch, dass Sie im Gegensatz zu SQL Server oder MySQL in Oracle keine select-Anweisung ohne eine from-Klausel ausführen können. Ein Weg, um dies ist die eingebaute Dummy-Tabelle zu verwenden, dual:

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

Danke für die Antwort! Ich werde es morgen versuchen, weil ich nur SQL-Server in meinem Computer habe. Nochmals vielen Dank für Ihre Zeit und Erklärung ~ :) – user3601310

3

Sie können einfach zwei Daten subtrahieren. Sie haben es zuerst zu werfen, 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 auf der Differenz dieser beiden Daten ist -1 (Sie könnten die beiden Daten austauschen, wenn Sie möchten). Wenn Sie es in Stunden haben möchten, multiplizieren Sie einfach das Ergebnis mit 24

+0

Vielen Dank für die Antwort! Ich werde es morgen versuchen, weil ich nur SQL-Server in meinem Computer habe. Nochmals vielen Dank für Ihre Zeit und Erklärung ~ :) – user3601310

4

einfach die beiden Daten subtrahieren:

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

Das Ergebnis wird die Differenz in Tagen.

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

+0

Vielen Dank für die Antwort! Ich werde es morgen versuchen, weil ich nur SQL-Server in meinem Computer habe. Nochmals vielen Dank für Ihre Zeit n den Link ~ :) – user3601310

+1

@ user3601310: Was ist ein 'morgen coz'? (coz klingt wie das deutsche Wort für "erbrechen" ....) –

+0

Er meinte "weil" ... –