我有一个select查询,其中我取两个时间戳之间的差值
select EXTRACT (HOUR FROM (systimestamp-queuereceiveddate(a,b)))
from dualqueuereceived date函数还返回一个时间戳。我可以使用提取函数提取天,但不能提取小时。
请对此提出建议。
发布于 2013-04-29 18:45:52
提取小时肯定是有效的:
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值相加来计算总数:
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当然,我猜是因为你没有解释你所看到的问题,但由于函数确实起作用了,我认为这是你唯一想说的……
https://stackoverflow.com/questions/16276478
复制相似问题