在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数

在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数,第1张

时间,在数据库里实际是以长整型表示即1900-1-1日到当前的天数于是不难理解时间是可以做减法的

当然,为了简便,规定差值1为一天的,如果当前时间+365即明年的4月2日22:49:40秒

那么算下来,1秒即为:1/(243600)=000001157

至于分钟,小时,周数等等,都是些函数转换没啥希奇

直接用查询就可以得到你要的结果:

select ID,NAME,VISIT_TIME

   from

      (

      select ID,NAME,VISIT_TIME

            ,CNT

            ,max(CNT) over () MX

         from

            (

            select ID,NAME,VISIT_TIME

                  ,count(MINDATE) over (partition by MINDATE) CNT

               from

                  (

                  select ID,NAME,VISIT_TIME

                        ,MINDATE

                     from 

                        (

                        select ID,NAME,VISIT_TIME

                              ,row_number() over (order by VISIT_TIME) RN

                           from VISTER  t

                           where tNAME = '张三'

                        ) t

                     model

                     dimension by (tRN)

                     measures(ID,NAME,VISIT_TIME,trunc(VISIT_TIME) VISIT_DATE,trunc(tVISIT_TIME) as MINDATE)

                     rules upsert all

                     (

                     MINDATE[any] = 

                        case 

                           when VISIT_DATE[currentv()] - VISIT_DATE[currentv()-1] <= 1 then 

                              MINDATE[currentv()-1] 

                           else 

                              VISIT_DATE[currentv()]

                        end

                     )

                     order by VISIT_TIME

                  )

            )

      )

   where CNT = MX

select sysdate - to_date('20141020', 'yyyymmdd') from dual;

oracle里日期型之间是可以直接运算的,这样的结果就是现在的时间和2014-10-20日之间间隔的天数,注意这个值是有小数位的,即两个日期值之间的精确计算的差值,如果需要结果为整数的天数,对结果turnc、round即可。

oracle 有datediff函数,提示出错肯定是你参数不对;

参考: datediff(''d'',adate,bdate) --如果adate字段 早于bdate字段,值为正,反之为负

以上就是关于在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数全部的内容,包括:在 oracle 如何计算 两个日期间的 秒数、分钟数、小时数、天数、周数、月数、年数、Oracle数据库 sql高手请进来:取出某段时间段内,时间中天数连续的数据、Oracle 获得两个日期之间间隔的月份数和天数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9747317.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存