加入收藏 | 设为首页 | 会员中心 | 我要投稿 上饶站长网 (https://www.0793zz.com.cn/)- 数据库平台、视觉智能、智能搜索、决策智能、迁移!
当前位置: 首页 > 站长百科 > 正文

oracle – 将间隔转换为分钟

发布时间:2021-05-23 11:53:42 所属栏目:站长百科 来源:网络整理
导读:假设我有两个间隔: 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.

问候,抢.

(编辑:上饶站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读