站长网 百科 oracle – 将间隔转换为分钟

oracle – 将间隔转换为分钟

假设我有两个间隔: INTERVAL ‘0 00:30:00’ DAY TO SECONDINTERVAL ‘0 04:00:00’ DAY TO SECOND 什么是最优雅的方式来获取每个时间间隔的分钟数. 30和240. 是的,我知道我可以执行EXTRACT(从间隔小时)* 60 EXTRACT(从间隔分钟),但这对我来说看起来很糟糕.

假设我有两个间隔:

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.

问候,抢.

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/baike/2021/0524/5882.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部