Hola neocalichin:
En tu primer post intentaste usar la función TIMEDIFF, pero creo que no te tomaste el tiempo para revisar la documentación... pues la función TIMEDIFF requiere DOS PARÁMETROS, y no tres, como estás intentando usar...
Cita: TIMEDIFF(expr,expr2)
TIMEDIFF() retorna el tiempo entre la hora de inicio expr y la hora final expr2. expr y expr2 son expresiones de hora o de fecha/hora, pero ambas deben ser del mismo tipo.
Ahora bien, en tus post no lo mencionas directamente pero supongo que tus campos son de tipo TIME cierto??? si es así podrías hacerlo sencillamente así:
Código MySQL:
Ver original+------+------------+------------+------------+
| id | horainicio | horasalida | refrigerio |
+------+------------+------------+------------+
| 1 | 08:20:00 | 18:40:00 | 00:30:00 |
| 2 | 07:00:00 | 16:20:00 | 00:20:00 |
| 3 | 08:31:51 | 18:40:54 | 01:03:59 |
| 4 | 00:00:00 | 23:59:59 | 12:00:00 |
| 5 | 08:29:41 | 16:59:15 | 00:29:00 |
+------+------------+------------+------------+
-> id, horainicio, horasalida, refrigerio,
-> TIMEDIFF(TIMEDIFF(horasalida, horainicio), refrigerio) tiempo_activo
+------+------------+------------+------------+---------------+
| id | horainicio | horasalida | refrigerio | tiempo_activo |
+------+------------+------------+------------+---------------+
| 1 | 08:20:00 | 18:40:00 | 00:30:00 | 09:50:00 |
| 2 | 07:00:00 | 16:20:00 | 00:20:00 | 09:00:00 |
| 3 | 08:31:51 | 18:40:54 | 01:03:59 | 09:05:04 |
| 4 | 00:00:00 | 23:59:59 | 12:00:00 | 11:59:59 |
| 5 | 08:29:41 | 16:59:15 | 00:29:00 | 08:00:34 |
+------+------------+------------+------------+---------------+
haz la prueba y nos comentas.
Saludos
Leo.