Найти разницу во времени для полей в формате TIME - MySQL
Формулировка задачи:
Уважаемые специалисты, добрый день!
Подскажите пожалуйста как можно решить такую задачу:
Есть таблица с данными, в которой 3 поля Дата вылета, Время вылета и Время посадки, поля с временем хранится в формате TIME, мне нужно узнать суммарный налет за месяц.
Для этого я должен от Время посадки отнять Время вылета
1
Дата вылета - 23.08.2016 Время вылета - 14:00 Время посадки - 15:00 В первом случае всё будет правильно. 15:00 - 14:00 = 12
Дата вылета - 23.08.2016 Время вылета - 23:00 Время посадки - 1:00 Во втором я получу неправильное время. 1:00 - 23:00 = -223
Дата вылета - 23.08.2016 Время вылета - 00:00 Время посадки - 00:00 В третем случае тоже не работает. 00:00 - 00:00 = 0 Я думаю над такими вариантами: 1. Считать разницу с помощью PHP и записывать в дополнительное поле. 2. Добавить поле с датой прибытия и в MySQL объединять поля (если возможно). 3. Возможно MySQL есть функция которая решает такую задачу. Подскажите как лучше поступить.Решение задачи: «Найти разницу во времени для полей в формате TIME»
textual
Листинг программы
SELECT SUM(IF(`Время вылета`<'Время посадки', `Время посадки'-'Время вылета', '24:00:00'-'Время вылета'+'Время посадки') FROM `TABLE`
Объяснение кода листинга программы
В данном коде выполняется запрос на выборку из таблицы TABLE
с условием, что будут выбраны только те строки, где значение поля Время вылета
меньше значения поля Время посадки
.
Далее производится вычисление разницы между этими двумя полями, и если разница больше или равна 24 часам, то к разнице добавляется 24 часа.
Затем производится суммирование всех полученных значений разницы времени.
- SELECT SUM(IF(
Время вылета
<'Время посадки', - `Время посадки'-'Время вылета',
- '24:00:00'-'Время вылета'+'Время посадки')
- FROM
TABLE
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д