2015-02-09 10 views
13

Ho bisogno di utilizzare Oracle ma la funzione DATEDIFF non funziona nel DB Oracle.Funzione DATEDIFF in Oracle

Come scrivere il seguente codice in Oracle? Ho visto alcuni esempi usando INTERVAL o TRUNC.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff; 
+1

possibile duplicato del [Calcola differenza tra 2 data/orari in Oracle SQL] (http://stackoverflow.com/questions/1096853/calculate- differenza-tra-2-date-times-in-oracle-sql) – Jens

risposta

16

In Oracle, si può semplicemente sottrarre due date e ottenere la differenza di giorni. Inoltre, a differenza di SQL Server o MySQL, in Oracle non è possibile eseguire un'istruzione select senza una clausola from. Un modo per aggirare questo è quello di utilizzare la tabella integrato manichino, dual:

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

Grazie per la risposta! Ci proverò domani perché ho solo il server SQL nel mio computer. Grazie ancora per il tuo tempo e spiegazione ~ :) – user3601310

3

È possibile semplicemente sottrarre due date. Bisogna lanciare per primo, con to_date:

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

Il risultato è in giorni, per la differenza di queste due date è -1 (si poteva scambiare le due date, se volete). Se ti piace avere in ore, basta moltiplicare il risultato con 24.

+0

Grazie per la risposta! Ci proverò domani perché ho solo il server SQL nel mio computer. Grazie ancora per il tuo tempo e spiegazione ~ :) – user3601310

4

Basta sottrarre le due date:

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

Il risultato sarà la differenza di giorni.

Maggiori dettagli sono nel manuale:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042

+0

Grazie per la risposta! Ci proverò domani perché ho solo il server SQL nel mio computer. Grazie ancora per il tuo tempo n il link ~ :) – user3601310

+1

@ user3601310: che cosa è un 'domani coz'? (coz suona come la parola tedesca per "vomitare" ....) –

+0

Intendeva 'perché' ... –

Problemi correlati