Oracle: la migliore istruzione SELECT per ottenere la differenza in minuti tra due colonne DateTime?
Domanda
Sto tentando di soddisfare una richiesta di segnalazione piuttosto difficile da parte di un cliente e devo trovare la distanza per ottenere la differenza tra due colonne DateTime in pochi minuti. Ho tentato di utilizzare trunc e round con vari e non riesco a venire con una combinazione che ha senso. Esiste un modo elegante per farlo? In caso contrario, esiste un modo per farlo?
Soluzione
SELECT date1 - date2
FROM some_table
restituisce una differenza in giorni. Moltiplicare per 24 per ottenere una differenza in ore e 24 * 60 per ottenere minuti. Quindi
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
dovrebbe essere quello che stai cercando
Altri suggerimenti
Per impostazione predefinita, la sottrazione della data dell'oracolo restituisce un risultato in # di giorni.
Quindi basta moltiplicare per 24 per ottenere # di ore e di nuovo per 60 per # di minuti.
Esempio:
select
round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
(
select
to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
from
dual
) test_data
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - link morto al 30-01-2012
Sembra che questa sia la risorsa:
http://asktom.oracle.com/pls/asktom /ASKTOM.download_file?p_file=6551242712657900129