sql >> Database >  >> RDS >> Oracle

Interval converteren naar minuten

Wat er voor jou verschrikkelijk uitziet, lijkt mij volkomen acceptabel. Als je kijkt naar de documentatie bij de rekenkunde die je kunt uitvoeren op INTERVAL's:

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

dan zie je dat je ze met cijfers kunt vermenigvuldigen. Dus als u uw intervallen vermenigvuldigt met 24 en 60, kunt u het aantal minuten krijgen door het aantal dagen te extraheren. Het is compacter, maar ik betwijfel of het in jouw ogen eleganter is.

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.

Met vriendelijke groet,
Rob.



  1. Verborgen functies in Oracle

  2. INSERT ... OP DUPLICATE KEY (niets doen)

  3. Zijn query's van het SELECT-type het enige type dat kan worden genest?

  4. CURRENT_DATE Voorbeelden – MySQL