Temp1ar
Новичок
Задача о пересечении отрезков в датах
Задача следующая: есть график работы пользователя, он хранится в виде
За день можно много раз начинать и заканчивать работу:
Нужно вычислить количество рабочих секунд при известной дате начала и дате конца, даты могут отличаться на день или несколько.
Тоесть, начальная дата: 2008-08-14 12:00, конечная 2008-08-14 16:30, вывод должен быть равен 2,5 часа
Есть ли какой-нибудь красивый способ решить подобную задачу, в IF'ах я закопался
Заранее спасибо!
Задача следующая: есть график работы пользователя, он хранится в виде
Код:
mysql> DESCRIBE schedules;
+------------+---------+------+-----+----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------+------+-----+----------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | YES | MUL | NULL | |
| date | date | YES | MUL | NULL | |
| begin_time | time | YES | | 00:00:00 | |
| end_time | time | YES | | 00:00:00 | |
+------------+---------+------+-----+----------+----------------+
Код:
+----+---------+------------+------------+----------+
| id | user_id | date | begin_time | end_time |
+----+---------+------------+------------+----------+
| 11 | 1 | 2008-08-14 | 13:00:00 | 15:00:00 |
| 12 | 1 | 2008-08-14 | 16:00:00 | 17:00:00 |
| 13 | 1 | 2008-08-14 | 18:00:00 | 18:08:00 |
| 14 | 1 | 2008-08-14 | 18:08:00 | 18:11:00 |
+----+---------+------------+------------+----------+
Тоесть, начальная дата: 2008-08-14 12:00, конечная 2008-08-14 16:30, вывод должен быть равен 2,5 часа
Есть ли какой-нибудь красивый способ решить подобную задачу, в IF'ах я закопался

Заранее спасибо!