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

Konvertieren Sie das Intervall in Minuten

Was für Sie schrecklich aussieht, sieht für mich vollkommen akzeptabel aus. Wenn Sie sich die Dokumentation der Arithmetik ansehen, die Sie auf INTERVALS ausführen können:

http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#sthref175

dann siehst du, dass du sie mit Zahlen multiplizieren kannst. Wenn Sie also Ihre Intervalle mit 24 und 60 multiplizieren, erhalten Sie die Anzahl der Minuten, indem Sie die Anzahl der Tage extrahieren. Es ist kompakter, aber ich bezweifle, dass es aus Ihrer Sicht eleganter ist.

SQL> create table t (my_interval interval day to second)
  2  /

Table created.

SQL> insert into t
  2  select numtodsinterval(30,'minute') from dual union all
  3  select numtodsinterval(4,'hour') from dual
  4  /

2 rows created.

SQL> select my_interval
  2       , 60 * extract(hour from my_interval)
  3         + extract(minute from my_interval) minutes_terrible_way
  4       , extract(day from 24*60*my_interval) minutes_other_way
  5    from t
  6  /

MY_INTERVAL                    MINUTES_TERRIBLE_WAY MINUTES_OTHER_WAY
------------------------------ -------------------- -----------------
+00 00:30:00.000000                              30                30
+00 04:00:00.000000                             240               240

2 rows selected.

Viele Grüße,
Rob.