SQLSERVER

image.png 同一条新线体,如何计算每一个时间段的时间差,第一条开始时间按照9:00开始 

SQL CCn1234 发布于 2024-9-13 11:21
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-9-13 11:32

WITH a as (

SELECT 1 id,'2024-09-13 09:00:00' tm

UNION

SELECT 2 id,'2024-09-13 09:05:00' tm

UNION

SELECT 3 id,'2024-09-13 09:10:00' tm

UNION

SELECT 4 id,'2024-09-13 09:15:00' tm

)

SELECT  

    id,  

    tm,  

    -- 使用LAG函数获取上一行的时间戳  

    LAG(tm) OVER (ORDER BY id) AS PreviousTransactionTime,  

    -- 计算时间差  

    DATEDIFF(MINUTE, LAG(tm) OVER (ORDER BY id), tm) AS TimeDifferenceInMinutes  

FROM  

    a;

最佳回答
0
华莉星宸Lv7高级互助
发布于2024-9-13 11:23

在报表上有层次坐标计算

相对层次坐标 https://help.fanruan.com/finereport/doc-view-3802.html

最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-9-13 11:24(编辑于 2024-9-13 11:31)

https://blog.csdn.net/sinat_26811377/article/details/107188400 参考

-------------

思路:先lag() over()出上一条数据,然后再DATEDIFF()出时间差

  • 3关注人数
  • 121浏览人数
  • 最后回答于:2024-9-13 11:32
    请选择关闭问题的原因
    确定 取消
    返回顶部