Как проверить, сколько часов между двумя датами находится между фиксированным интервалом времени - PullRequest
1 голос
/ 16 марта 2020

У меня следующая ситуация:

У меня есть диапазон времени от 17 до 22 ч.

Например, у меня есть строка со следующей информацией:

Starttime (datetime): 2020-03-16 13:15:00
Endtime (datetime): 2020-03-16 19:45:00

Как узнать количество часов между фиксированным диапазоном времени (-> 2: 45h)

1 Ответ

3 голосов
/ 17 марта 2020

Предполагая, что время начала / окончания не охватывает несколько дней, вы можете использовать timediff(), greatest() и least():

select timediff(
    greatest(time(start_time), '17:00:00'),
    least(time(endtime), '22:00:00')
)

greatest(time(start_time), '17:00:00') дает вам 17 часов, если (компонент времени из) start_time меньше 17 часов.

least(time(endtime), '22:00:00' дает 22 часа, если время окончания больше 22 часов.

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