@maks78945

Как получить разницу между датами больше чем n-е количество минут?

Добрый день, есть таблица в которой есть 2 поля формата время, второе поле всегда больше (но бывают случаи когда в первом 23:55, а во втором 00:15).
Как мне сделать запрос что-бы получить все строки в которых разница между полями больше определенного количества минут?

У меня получилось сделать вот такой запрос:
SELECT id, TIMEDIFF(time_in, time_go)  FROM tab WHERE TIMEDIFF(time_in, time_go) < '00:03:00'


Но если время приезда меньше чем время отправки, я получаю отрицательное значение, как это можно исправить, что бы все значения были положительные?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
vilinyh
@vilinyh
select
    time_in,
    time_go,
    timediff(
        case when time_go < time_in then time_go + interval 1 day else time_go end,
        time_in
    ) as "diff",
    timediff(
        case when time_go < time_in then time_go + interval 1 day else time_go end,
        time_in
    ) < '03:00' as "match"
from (
    select cast('23:55' as time) as time_in, cast('00:33' as time) as time_go
    union all select cast('15:41' as time), cast('23:51' as time)
    union all select cast('07:32' as time), cast('10:25' as time)
 ) t
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы