Рассчитать продолжительность между двумя метками времени в двух строках SQL Сервер - PullRequest
0 голосов
/ 21 января 2020

Я хочу рассчитать продолжительность между двумя строками, например, между датой начала сбоя и датой окончания для отчета.

Я гуглил и нашел мы можем сделать это, используя ниже:

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. Приложение будет обращаться к API, чтобы проверять снова через каждые 10 минут. Если это возвращает правильный ответ с FaultCode = 0.

Таким образом, может быть несколько записей между датой начала времени отказа и датой окончания времени ошибки.

Я хочу получить разницу между этими двумя значениями в столбце Длительность, и мне нужно отображать только одну запись для каждого сбоя, который будет иметь startDateTime, EndDateTime и Duration of Fault.

Пожалуйста, помогите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...