度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle计算时间差,输出形式为天时分秒 [打印本页]

作者: 张兴康    时间: 2020-2-20 19:08
标题: oracle计算时间差,输出形式为天时分秒

  1. with t1 as
  2. (select (to_date('2016-03-31 12:09:29', 'yyyy-mm-dd hh24:mi:ss') -
  3.          to_date('2016-03-16 18:03:02', 'yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60 as parsec
  4.     from dual),
  5. t2 as
  6. (select trunc(parsec / (24 * 60 * 60)) || '天' as days,
  7.          trunc((parsec - (trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60))) /
  8.                (60 * 60)) || '小时' as hours,
  9.          trunc((parsec - trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60) -
  10.                trunc((parsec -
  11.                       (trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60))) /
  12.                       (60 * 60)) * (60 * 60)) / 60) || '分' as minutes,
  13.          (parsec - trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60) -
  14.          trunc((parsec - (trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60))) /
  15.                 (60 * 60)) * (60 * 60) -
  16.          trunc((parsec - trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60) -
  17.                 trunc((parsec -
  18.                        (trunc(parsec / (24 * 60 * 60)) * (24 * 60 * 60))) /
  19.                        (60 * 60)) * (60 * 60)) / 60) * 60) || '秒' as seconds
  20.     from t1)
  21. select days || hours || minutes || seconds from t2
复制代码



作者: 陈晓龙    时间: 2020-2-21 00:08
这个,一般用于什么时候呢?
作者: 陈晓龙    时间: 2020-2-21 00:08
如果有案例就好了!
作者: 张兴康    时间: 2020-2-21 13:36
陈晓龙 发表于 2016-3-21 00:08
如果有案例就好了!

你复制出来执行不就明白了么
作者: 陈晓龙    时间: 2020-2-21 14:35
得到的结果:14天18小时6分27秒
作者: 王爱东    时间: 2020-2-21 17:36
14天18小时6分27秒,居然没用sysdate来演示
作者: 王爱东    时间: 2020-2-21 17:36
感觉很复杂的样子,我想象中应该很简单一个函数搞定呢
作者: 万望    时间: 2020-2-21 21:43
陈晓龙 发表于 2016-3-21 00:08
这个,一般用于什么时候呢?

然并卵




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2