如何获取单列时间字段内,相邻时间的时间差?

如何获取单列时间字段内,相邻时间的时间差?

数据库:SQLServer 2008

screenshot-20230215-095153.png

已经形成2个字段时间,需要用第二列第一行的时间减去第一列第二行的时间,得到时间差;然后用地方同样的方法循环。

screenshot-20230215-132733.png

SQLServer2008不支持LAG()函数

-----

screenshot-20230217-164231.png

SQL 阿聪聪 发布于 2023-2-15 09:53 (编辑于 2023-2-17 16:42)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
Z4u3z1Lv6专家互助
发布于2023-2-15 09:53(编辑于 2023-2-17 16:30)

https://bbs.fanruan.com/thread-133024-1-1.html 参考

++++++

看懂么?用lag()新增一个字段,然后两个字段相减即可

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

with test as (

select '2023-02-04 19:08:52' [rq_]

union all 

select '2023-02-04 19:05:54'

union all 

select '2023-02-04 19:03:23'

union all 

select '2023-02-04 19:01:43'

union all 

select '2023-02-04 19:00:43'

union all 

select '2023-02-04 18:57:08'

union all 

select '2023-02-04 18:53:20'

)

SELECT T.*,DATEDIFF(SS,rq_,NEW_) [时差] FROM (

select A.*,(SELECT TOP 1 B.RQ_ FROM TEST B WHERE A.rq_>B.rq_ ORDER BY B.rq_ DESC) [NEW_] FROM test A

) T 

image.png

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

with tablea as(

select 1 as t

),

tableb as(

select 2 as s

)

select * from tablea,tableb

---------

image.png

最佳回答
0
lt1873Lv5见习互助
发布于2023-2-15 14:33

image.png

做2列不扩展的数据,通过数组中的位置来取值

C2单元格公式=INDEXOFARRAY(SPLIT(A1, ','), INARRAY(B2, SPLIT(B1, ',')) + 1)

  • 2关注人数
  • 538浏览人数
  • 最后回答于:2023-2-17 16:42
    请选择关闭问题的原因
    确定 取消
    返回顶部