orcale当条记录的开始时间减去上条记录的结束时间,需要以分钟为单位,sql应该怎么写

select t.verweis,

       (begin_ts + 0) 开始时间,

       (end_ts + 0) 结束时间, 

       --时间差:当前行的开始时间-前一行(LAG函数)的结束时间,根据verweis排序

       (begin_ts + 0) - LAG((end_ts + 0), 1, null) OVER(ORDER BY verweis) minusTime

  from table_name t

 order by verweis;

FineReport 邦尼two 发布于 2023-4-13 14:34
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
邦尼twoLv3见习互助
发布于2023-4-13 15:52

先把上条记录结束时间查出来,在外层求差

最佳回答
0
CD20160914Lv8专家互助
发布于2023-4-13 14:37(编辑于 2023-4-13 14:40)
select ceil(To_date('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss')-To_date('2008-04-30 23:59:59','yyyy-mm-dd hh24-mi-ss'))*24*60 as 时间 from dual

自己改成你自己的。

image.png

  • 邦尼two 邦尼two(提问者) 不知道是不是lag函数,报错
    2023-04-13 14:48 
  • CD20160914 CD20160914 回复 邦尼two(提问者) 我上面的语句修改了一下。最开始发的有问题,你自己重新带入进去。。
    2023-04-13 14:49 
  • CD20160914 CD20160914 回复 邦尼two(提问者) 先不用lag函数。把我的语句查询是不会报错的。
    2023-04-13 14:50 
  • 邦尼two 邦尼two(提问者) 回复 CD20160914 还是报错 a non-numeric character was found where a numeric was expected
    2023-04-13 14:54 
  • CD20160914 CD20160914 回复 邦尼two(提问者) 那是你的另外的语句报错。我的这个不会报错。我只是转换一下时间而已。如果你是字段是真正的日期格式,不用to_date函数,直接减了以后*24*60再套一个celi函数就行的
    2023-04-13 14:55 
  • 1关注人数
  • 241浏览人数
  • 最后回答于:2023-4-13 15:52
    请选择关闭问题的原因
    确定 取消
    返回顶部