Oracle - Best SELECT-Anweisung für das Erhalten der Differenz in Minuten zwischen zwei Datetime-Spalten?
Frage
Ich bin versucht, eine ziemlich schwierige Berichtsanforderung von einem Client zu erfüllen, und ich brauche zu finden weg die Differenz zwischen zwei Datetime-Spalt in wenigen Minuten zu bekommen. Ich habe versucht, trunc und rund mit verschiedenen Formate zu verwenden und nicht scheinen, zu kommen up mit einer Kombination, die Sinn macht. Gibt es eine elegante Art und Weise, dies zu tun? Wenn nicht, gibt es jede Art und Weise, dies zu tun?
Lösung
SELECT date1 - date2
FROM some_table
gibt einen Unterschied in Tagen. Multiplizieren von 24, um einen Unterschied in Stunden zu erhalten und 24 * 60 bis Minuten. So
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
sollte das sein, was Sie suchen
Andere Tipps
In der Standardeinstellung oracle Datum Subtraktion liefert ein Ergebnis in # Tagen.
So einfach multiplizieren mit 24 zu erhalten # Stunden, und wieder um 60 # Minuten.
Beispiel:
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 tot wie von 2012-01-30
Sieht aus wie dies die Ressource ist:
http://asktom.oracle.com/pls/asktom /ASKTOM.download_file?p_file=6551242712657900129