Разница времени TIMEDIFF - MySQL
Формулировка задачи:
Имеется время вылета и время прибытия, а также время пути.
Если время вылета 17:25 прибытие 20:25 то время в пути 03:00, что собственно верно, а если
время вылета 22:41 прибытие 03:05 время в пути -19:36 хотя должно быть 5:36
Как сделать чтобы при переходе на следующие сутки время высчитывалось правильно?
Запрос такого вида:
TIME_FORMAT( TIMEDIFF(`ArrivalTime`, `DepartTime`), '%H:%i') AS `TravelTimes`,
Решение задачи: «Разница времени TIMEDIFF»
textual
Листинг программы
SELECT TIME_FORMAT(( CASE WHEN DepartTime > ArrivalTime THEN ADDTIME(TIMEDIFF('24:00:00', DepartTime), ArrivalTime) ELSE TIMEDIFF(ArrivalTime, DepartTime) END ), '%H:%i') AS TravelTimes
Объяснение кода листинга программы
- Сначала мы используем функцию TIME_FORMAT для форматирования времени в формате 'HH:ii'.
- Затем мы используем функцию CASE для проверки, является ли время отправления больше времени прибытия.
- Если время отправления больше времени прибытия, мы используем функцию ADDTIME для добавления 24 часов к времени отправления, а затем используем функцию TIMEDIFF для вычисления разницы между временем прибытия и временем отправления.
- Если время отправления меньше или равно времени прибытия, мы просто используем функцию TIMEDIFF для вычисления разницы между временем прибытия и временем отправления.
- Результатом является время в формате 'HH:ii', которое представляет собой общее время путешествия.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д