首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取小时数函数未按预期工作

问提取小时数函数未按预期工作
EN

Stack Overflow用户
提问于 2013-04-29 18:34:49
回答 1查看 186关注 0票数 0

我有一个select查询,其中我取两个时间戳之间的差值

代码语言:javascript
复制
select EXTRACT (HOUR FROM (systimestamp-queuereceiveddate(a,b))) 
  from dual

queuereceived date函数还返回一个时间戳。我可以使用提取函数提取天,但不能提取小时。

请对此提出建议。

EN

回答 1

Stack Overflow用户

发布于 2013-04-29 18:45:52

提取小时肯定是有效的:

代码语言:javascript
复制
select systimestamp - (systimestamp - 27.5/24) as diff,
    extract(day from systimestamp - (systimestamp - 27.5/24)) as diff_day,
    extract(hour from systimestamp - (systimestamp - 27.5/24)) as diff_hour
from dual;

DIFF                             DIFF_DAY  DIFF_HOUR
------------------------------ ---------- ----------
+000000001 03:30:00.584929              1          3

如果您希望它显示总小时数,如果相差超过一天,那么您误解了extract function正在做什么,您需要通过将day值乘以24并将其与hour值相加来计算总数:

代码语言:javascript
复制
select systimestamp - (systimestamp - 27.5/24) as diff,
    extract(day from systimestamp - (systimestamp - 27.5/24))  * 24
        + extract(hour from systimestamp - (systimestamp - 27.5/24))
        as diff_hour_total
from dual;

DIFF                           DIFF_HOUR_TOTAL
------------------------------ ---------------
+000000001 03:30:00.612830                  27

当然,我猜是因为你没有解释你所看到的问题,但由于函数确实起作用了,我认为这是你唯一想说的……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16276478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档