Разница времени 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

Объяснение кода листинга программы

  1. Сначала мы используем функцию TIME_FORMAT для форматирования времени в формате 'HH:ii'.
  2. Затем мы используем функцию CASE для проверки, является ли время отправления больше времени прибытия.
  3. Если время отправления больше времени прибытия, мы используем функцию ADDTIME для добавления 24 часов к времени отправления, а затем используем функцию TIMEDIFF для вычисления разницы между временем прибытия и временем отправления.
  4. Если время отправления меньше или равно времени прибытия, мы просто используем функцию TIMEDIFF для вычисления разницы между временем прибытия и временем отправления.
  5. Результатом является время в формате 'HH:ii', которое представляет собой общее время путешествия.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5