sql >> Databasteknik >  >> RDS >> Oracle

Konvertera intervall till minuter

Det som ser hemskt ut för dig, ser helt acceptabelt ut för mig. Om du tittar på dokumentationen vid aritmetiken kan du utföra på INTERVALLER:

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

då ser du att du kan multiplicera dem med siffror. Så om du multiplicerar dina intervaller till 24 och 60 kan du få antalet minuter genom att extrahera antalet dagar. Den är mer kompakt, men jag tvivlar på om den är mer elegant enligt dig.

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.

Hälsningar,
Rob.



  1. PostgreSQL-processnamn på Solaris

  2. Trace Flag 2389 och den nya Cardinality Estimator

  3. Hur får man veckodagens namn från ett datum?

  4. Hur man övervakar PostgreSQL 12-prestanda med OmniDB – Del 2