问题描述
嗨,团队,
您能否帮助我了解如何找到要以小时,分钟和秒为单位返回的表的2个日期时间戳列之间的差异?
例如:
我确实有一个表a,其中有三列,其中C1为主键,c2为-intime和c3-out time
C1
过程1
C2 / Intime
10/7/2013 7:32:50下午
C3/运行时间
10/7/2013 7:39:52下午
我想看到结果列显示出时间为07:02 (即7分钟和2秒) 或值为bean整数值在秒-7*60 (秒) 2秒 = 422秒。
同样需要使用sql查询来实现
您能否帮助我了解如何找到要以小时,分钟和秒为单位返回的表的2个日期时间戳列之间的差异?
例如:
我确实有一个表a,其中有三列,其中C1为主键,c2为-intime和c3-out time
C1
过程1
C2 / Intime
10/7/2013 7:32:50下午
C3/运行时间
10/7/2013 7:39:52下午
我想看到结果列显示出时间为07:02 (即7分钟和2秒) 或值为bean整数值在秒-7*60 (秒) 2秒 = 422秒。
同样需要使用sql查询来实现
专家解答
如果日期确实是时间戳,那么这很容易-减去它们,结果是一天到第二个间隔。这些已经是小时: 分钟: 第二种格式!
或者,您可以使用extract() 手动获取组件:
如果值是日期,则减去它们会产生一个数字。提取仅适用于日期时间或时间间隔。所以你会得到一个错误:
但是你可以通过将日期转换为时间戳来解决这个问题:
with rws as (
select timestamp'2017-03-01 01:00:00' t1,
timestamp'2017-03-01 02:34:56' t2
from dual
)
select t2-t1 diff_interval
from rws;
DIFF_INTERVAL
+00 01:34:56.000000
或者,您可以使用extract() 手动获取组件:
with rws as (
select timestamp'2017-03-01 01:00:00' t1,
timestamp'2017-03-01 02:34:56' t2
from dual
)
select extract(hour from (t2-t1)) hrs,
extract(minute from (t2-t1)) mins,
extract(second from (t2-t1)) secs,
t2-t1 diff_interval
from rws;
HRS MINS SECS DIFF_INTERVAL
1 34 56 +00 01:34:56.000000
如果值是日期,则减去它们会产生一个数字。提取仅适用于日期时间或时间间隔。所以你会得到一个错误:
with rws as (
select date'2017-03-01' t1,
date'2017-03-01'+1/15.1 t2
from dual
)
select extract(hour from (t2-t1)) hrs,
extract(minute from (t2-t1)) mins,
extract(second from (t2-t1)) secs,
t2-t1 diff_interval
from rws;
SQL Error: ORA-30076: invalid extract field for extract source
但是你可以通过将日期转换为时间戳来解决这个问题:
with rws as (
select date'2017-03-01' t1,
date'2017-03-01'+1/15.1 t2
from dual
), tstamps as (
select to_timestamp(to_char(t1, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') t1,
to_timestamp(to_char(t2, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') t2
from rws
)
select extract(hour from (t2-t1)) hrs,
extract(minute from (t2-t1)) mins,
extract(second from (t2-t1)) secs,
t2-t1 diff_interval
from tstamps;
HRS MINS SECS DIFF_INTERVAL
1 35 22 +00 01:35:22.000000
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




