
时间,在数据库里实际是以长整型表示即1900-1-1日到当前的天数于是不难理解时间是可以做减法的
当然,为了简便,规定差值1为一天的,如果当前时间+365即明年的4月2日22:49:40秒
那么算下来,1秒即为:1/(243600)=000001157
至于分钟,小时,周数等等,都是些函数转换没啥希奇
直接用查询就可以得到你要的结果:
select ID,NAME,VISIT_TIMEfrom
(
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 获得两个日期之间间隔的月份数和天数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)