Apa yang tampak mengerikan bagi Anda, terlihat sangat dapat diterima oleh saya. Jika Anda melihat dokumentasi di aritmatika yang dapat Anda lakukan pada INTERVAL:
http://download.Oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#sthref175
kemudian Anda melihat Anda dapat mengalikannya dengan angka. Jadi, jika Anda mengalikan interval menjadi 24 dan 60, Anda bisa mendapatkan jumlah menit dengan mengekstrak jumlah hari. Ini lebih kompak, tapi saya ragu apakah itu lebih elegan dalam pandangan Anda.
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.
Salam,
Rob.