Oracle - Best SELECT-Anweisung für das Erhalten der Differenz in Minuten zwischen zwei Datetime-Spalten?

StackOverflow https://stackoverflow.com/questions/206222

  •  03-07-2019
  •  | 
  •  

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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top