oracle有两个字符字段a,b存的都是2015-01-01 13:13:12.123456的信息,现在两个字段要求时间差。

结果以s为单位,精确到微秒。例如2015-01-01 13:13:12.123456和2015-01-01 13:13:12.125456的差值结果就是0.002s。求大神指点sql语句怎么写,a,b字段都是nvarchar2型的

with t as
 (select to_timestamp('2015-01-01 11:13:15.023456',
                      'yyyy-mm-dd hh24:mi:ss.ff9') t1,
         to_timestamp('2015-01-01 12:13:15.123556',
                      'yyyy-mm-dd hh24:mi:ss.ff9') t2
    from dual)
select abs((trunc(t1 - 0, 'mi') - trunc((t2 - 0), 'mi')) * 24 * 60 * 60 +
           extract(second from t1 - t2))
  from t

相差总秒数,题主感受下。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-31
这个是相差微秒的,是不是还有相差秒的,分的,小时的,天的。
如果都是微妙的,那么就简单了,直接截取,然后相减就行。用trunc(b,-8)-trunc(a,-8)
如果其他的,比如分的,小时的,那么就稍微有点麻烦。需要再说。本回答被网友采纳
相似回答
大家正在搜