помогите посчитать время

mixas

Новичок
помогите посчитать время

есть выборка из базы с полями uid, time_start ,time_end
мне надо выбрать данные для каждого юзера за один определённый месяц и посчитать сколько времени он потратил в день и в месяц.

--- uid --- time_start ------------------- time_end ---------
---38------2009-02-01 10:45:01------2009-02-01 11:20:15
---38------2009-02-01 11:30:01------2009-02-01 11:49:15
---38------2009-02-01 11:55:01------2009-02-01 12:30:15
---38------2009-02-05 10:45:01------2009-02-05 11:20:15
---38------2009-02-05 11:25:01------ 2009-02-05 14:30:15
...... ................................ .................................

так вот из этой таблицы мне надо взять сначала все строки этого юзера за 1 февраля, не складывать время из каждой строчки, а вычислить разницу между началом первого действия и концом последнего, т е в данном случае с 10:45 до 12:30 получается 105 минут, потом так же для 5го февраля и остальных дней а в конце месяца все минуты сложить.

первую часть я сделал и поместил данные юзера за месяц в массив, а теперь
никак не могу придумать что с этим массивом делать , или можно было как то сразу решить эти задачи или часть из них с помощью хитрого запроса к базе?
 

zerkms

TDD infected
Команда форума
группировать по uid + числу, отнимать от MAX(`time_end`) MIN(`time_start`)
 

mixas

Новичок
сделал так:
"SELECT TIMEDIFF(MAX(time_end), MIN(time_start))
FROM example WHERE uid = ".$uid." AND time_start BETWEEN ".$datestart." AND ".$dateend." GROUP BY uid, DATE(time_start)"

в результате получаю время, которое мне надо за каждый день месяца
03:08:17
07:41:42
09:49:47
12:49:00
04:21:10
00:51:55
06:50:44
08:43:08

как мне его теперь за целый месяц суммировать, чтоб в результате красиво получилось типа 45:51:20 ?
 

zerkms

TDD infected
Команда форума
оформить полученный запрос в виде подзапроса и просуммировать
 
Сверху