Time Query - запрос одного столбца, чтобы он был больше другого - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь выполнить запрос, который показывает задержку между датой / временем в одном столбце относительно другого.В идеале я хотел бы иметь возможность указать что-то большее, чем, скажем, 5 часов.

Я хочу иметь возможность показывать результаты, например:

Select * from table
where column A is greater than column B

или в идеале where column A is greater than column B by 5 hours

Ответы [ 4 ]

0 голосов
/ 12 февраля 2019

В MySQL вы должны сделать:

where A > B

А затем:

where A > B + interval 5 hour

Я рекомендую привыкнуть к этой форме сравнения, а не думать с точки зрения разницы,Хотя в этом случае, вероятно, нет никакой разницы, если B является константой, это может использовать индекс для A.

0 голосов
/ 12 февраля 2019
Select * from table
where (column A - column B) > 5/24
0 голосов
/ 12 февраля 2019

Арифметика даты работает в порядке миллисекунд.

select * from table where (columnA - columnB)/(1000*60*60) >= 5

Вычитание полей даты даст миллисекунды.Таким образом, деление миллисекунд на 1000 * 60 * 60 даст количество прошедших часов.

0 голосов
/ 12 февраля 2019

использовать TIMESTAMPDIFF

  Select * from table
    where TIMESTAMPDIFF(HOUR, start_time, end_time)>=5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...