Những gì trông khủng khiếp đối với bạn, trông hoàn toàn có thể chấp nhận được đối với tôi. Nếu bạn xem tài liệu về số học, bạn có thể thực hiện trên INTERVALs:
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#sthref175
sau đó bạn thấy bạn có thể nhân chúng với các số. Vì vậy, nếu bạn nhân khoảng thời gian của mình với 24 và 60, bạn có thể nhận được số phút bằng cách trích ra số ngày. Nó nhỏ gọn hơn, nhưng tôi nghi ngờ liệu nó có trang nhã hơn theo quan điểm của bạn hay không.
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.
Trân trọng,
Rob.