Как получить разницу во времени между двумя событиями в SQL

#sql #date-arithmetic

#sql #дата-арифметика

Вопрос:

У меня есть таблица данных со следующими столбцами: введите описание изображения здесь, где

  • datetime: событие in_time и Out_time
  • Серьезность: уникальна для каждого сообщения
  • Сообщение: сообщение о событии типа = ТРЕВОГА ОТКЛЮЧЕНИЯ ВЕНТИЛЯТОРА, ТРЕВОГА ОТКЛЮЧЕНИЯ ЦИРКУЛЯЦИОННОГО НАСОСА, ТРЕВОГА ОТКЛЮЧЕНИЯ КОНВЕКЦИИ, ТРЕВОГА ОТКЛЮЧЕНИЯ ЛИФТА, ТРЕВОГА ОТКЛЮЧЕНИЯ ПЕРЕКРЕСТНОГО КОНВЕКЦИИ
  • Активный: если событие включено, то активным будет 1, иначе 0

Я должен определить разницу между событием во времени и временем выхода.

Я попытался использовать CTE и использовать отдельную таблицу для времени начала и окончания события:

Использование этой команды (для времени события):

 SELECT 
    [DATETIME], [Severity], [Message], [Active], [Acked]
INTO
    intime
FROM 
    [master].[dbo].[DATATABLE] 
WHERE 
    ACTIVE = 1
  

Теперь моя таблица данных с временем события — «intime». Таблица с записью времени ИСТЕЧЕНИЯ:

 SELECT 
    [DATETIME], [Severity], [Message], [Active], [Acked]
INTO
    OUTIME
FROM 
    [master].[dbo].[DATATABLE] 
WHERE 
    ACTIVE = 0
  

Как я могу получить разницу во времени между базовыми событиями между обеими таблицами?

Комментарии:

1. Предоставьте образцы данных, желаемые результаты и тег для используемой базы данных.

2. Ключ — это столбец сообщений — необходимо сопоставить время работы лифта с временем работы лифта (не с временем работы вентилятора). Необходимо учитывать два времени ожидания лифта подряд без промежуточного времени ожидания лифта или два времени ожидания подряд…