暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 时间戳差异错误

askTom 2016-04-13
328

问题描述

嗨,

场景1 : (按预期工作。差值为04:55:10 ( 23:42:43-18:47:33))

选择
to_char(to_date(TRNC)to_number(to_char(to_date(()
( COALESCE((to_timestamp('23:42:43','hh24:mi:ss') ) - (to_timestamp('18:47:33') ,'hh24:mi:ss')))、间隔'0'天)、11、长度((COALESCE((to_timestamp('23:42:43') ,'hh24:mi:ss') - ( to_timestamp('18:47:33','hh24:mi:ss'))))))))、间隔'0天)、'hh24:mi:ss')、'SSSS')
),'SSSS'),'HH24:MI:SS')差异
从双通道

场景2 : (与预期的不一样。差值应该是05:00:00。但是下面的查询给出的输出是19:00:00 )
你能告诉我需要在这个查询中做什么更改吗?

选择
to_char(to_date(TRNC)to_number(to_char(to_date(()
(COALESCE((to_timestamp('04:00:00','hh24:mi:ss') ) - (to_timestamp('23:00:00') ,'hh24:mi:ss')))、间隔'0'天)、11、长度((COALESCE((to_timestamp('04:00:00') ,'hh24:mi:ss') - ( to_timestamp('23:00:00','hh24:mi:ss'))))))))、间隔'0天)、'hh24:mi:ss')、'SSSS')
),'SSSS'),'HH24:MI:SS')差异
从双通道

谢谢你!

专家解答

好吧,区别确实是19:00

SQL> select to_timestamp('04:00:00' , 'hh24:mi:ss') a,
  2         to_timestamp('23:00:00' , 'hh24:mi:ss') b,
  3         to_timestamp('04:00:00' , 'hh24:mi:ss') - to_timestamp('23:00:00' , 'hh24:mi:ss') delta
  4  from dual;

A
---------------------------------------------------------------------------
B
---------------------------------------------------------------------------
DELTA
---------------------------------------------------------------------------
01-APR-16 04.00.00.000000000 AM
01-APR-16 11.00.00.000000000 PM
-000000000 19:00:00.000000000


所以我不知道你在找什么如果23:00本应是前一天,则需要在传入数据中指明这一点。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论