oracle – 将间隔转换为分钟

前端之家收集整理的这篇文章主要介绍了oracle – 将间隔转换为分钟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有两个间隔:
INTERVAL '0 00:30:00' DAY TO SECOND
INTERVAL '0 04:00:00' DAY TO SECOND

什么是最优雅的方式来获取每个时间间隔的分钟数. 30和240.

是的,我知道我可以执行EXTRACT(从间隔小时)* 60 EXTRACT(从间隔分钟),但这对我来说看起来很糟糕.

任何更好的解决方案?

对你来说看起来很糟糕,看起来完全可以接受.如果您查看算术中的文档,可以在INTERVAL上执行:

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

那么你会看到你可以将它们与数字相乘.所以如果你的间隔乘以24和60,你可以通过提取天数得到分钟数.它更紧凑,但我怀疑你的看法是否更优雅.

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.

问候,抢.

猜你在找的Oracle相关文章