Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So subtrahieren Sie 2 Daten in Oracle, um das Ergebnis in Stunde und Minute zu erhalten

SQL> edit
Wrote file afiedt.buf

  1  select start_date
  2      , end_date
  3      , (24 * extract(day from (end_date - start_date) day(9) to second))
  4          + extract(hour from (end_date - start_date) day(9) to second)
  5          + ((1/100) * extract(minute from (end_date - start_date) day(9) to second)) as "HOUR.MINUTE"
  6* from t
SQL> /

START_DATE          END_DATE            HOUR.MINUTE
------------------- ------------------- -----------
21-06-2011 14:00:00 21-06-2011 16:55:00        2.55
21-06-2011 07:00:00 21-06-2011 16:50:00         9.5
21-06-2011 07:20:00 21-06-2011 16:30:00         9.1

Für diejenigen, die auf diesen Code stoßen, sollte beachtet werden, dass es sich bei den Dezimalstellen um TATSÄCHLICHE Minutenunterschiede und nicht um Teile einer Stunde handelt. .5 , stellt daher 50 minutes dar , nicht 30 minutes .