计算两行中两个时间戳之间的持续时间SQL Server

时间:2020-01-21 11:37:34

标签: sql-server datetime difference

我想计算两行之间的持续时间,例如故障的开始日期时间和报告的结束日期时间之间。

我用Google搜索,found可以通过以下方式实现:

SELECT  TagEventId,TagID,ServerResponse,FaultCode, ReaderID as DeviceID,EventTimeStamp as startDateTime, pDataDate as EnDateTime,DATEDIFF(minute, pDataDate, eventtimestamp) as Duration
FROM    (
        SELECT  *,
                LAG(eventtimestamp) OVER (ORDER BY eventtimestamp) pDataDate
        FROM    tagevents where readerid=25 and tagid='0'
        ) q

它返回的结果如下:

enter image description here

我们在报告中显示的内容。故障有一个开始时间,它将具有faultCode和TagID = 0。每10分钟,应用程序将访问API以再次检查..如果返回的故障代码为FaultCode = 0,则返回正确的响应。

因此,在故障开始日期时间和故障时间结束日期之间可能会有多个记录。

我想在“持续时间”列中获得这两者之间的区别,并且对于每个具有FaultDateTime,EndDateTime和“持续时间”的故障,我只显示一条记录。

请帮助我。

0 个答案:

没有答案