我需要减去给定格式的2个时间戳:
16/01/17 07:01:06,165000000
16/01/17 07:01:06,244000000
我想用2个十进制值表示结果,但是在CAST过程中的某个地方,我失去了精度。我现在的逃避方式是这样的:
select
id,
trunc((CAST(MAX(T.TIMESTAMP) AS DATE) - CAST(MIN(T.TIMESTAMP) AS DATE))*24*60*60,2) as result
from table T
group by id;
但是id_1 '0'
即使将截断小数设置为2,我还是得到了上面两个时间戳的结果。
有没有一种方法可以将减法结果获得0.XX aa?
这是因为您正在转换时间戳。
使用to_timestamp
你的字符串转换为时间戳。
试试这个:
with your_table(tstamp) as (
select '16/01/17 07:01:06,165000000' from dual union all
select '16/01/17 07:01:06,244000000' from dual
),
your_table_casted as (
select to_timestamp(tstamp,'dd/mm/yy hh24:mi:ss,ff') tstamp from your_table
)
select trunc(sysdate + (max(tstamp) - min(tstamp)) * 86400 - sysdate, 2) diff
from your_table_casted;
两个时间戳记之间的时差为INTERVAL DAY TO SECOND
。
要将其转换为秒,请使用上面的技巧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句