Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Konwertuj interwał na minuty

To, co dla ciebie wygląda okropnie, dla mnie wygląda na całkowicie do przyjęcia. Jeśli spojrzysz na dokumentację dotyczącą arytmetyki, którą możesz wykonać na INTERWAŁACH:

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

wtedy widzisz, że możesz je pomnożyć za pomocą liczb. Więc jeśli pomnożysz swoje interwały do ​​24 i 60, możesz uzyskać liczbę minut, wyodrębniając liczbę dni. Jest bardziej kompaktowy, ale wątpię, czy Twoim zdaniem jest bardziej elegancki.

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.

Pozdrawiam,
Zbój.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę wyświetlić WSZYSTKIE granty otrzymane przez użytkownika?

  2. Wyzwalacz Oracle ORA-04098:wyzwalacz jest nieprawidłowy i nie powiodła się ponowna weryfikacja

  3. Oracle CLOB nie może wstawić więcej niż 4000 znaków?

  4. Jak utworzyć obiekt oracle.sql.ARRAY?

  5. Jak formatować liczby za pomocą znaku minus/plus w Oracle