Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Sumar horas

Estas en el tema de Sumar horas en el foro de Mysql en Foros del Web. hola amigos, como estan ?, tengo un pequeño problemita, tengo una tabla llamada registro que contiene lo siguiente: id horainicio horasalida refrigerio y bueno lo ...
  #1 (permalink)  
Antiguo 14/11/2012, 11:01
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 2 meses
Puntos: 1
Mensaje Sumar horas

hola amigos, como estan ?, tengo un pequeño problemita, tengo una tabla llamada registro que contiene lo siguiente:

id
horainicio
horasalida
refrigerio

y bueno lo que quiero hacer es sacar la diferencia que hay entre la horainicio y la horasalida y a eso restarle el refrigerio;

he creado algo asi pero no me sale :(

Select id, TIMEDIFF(horasalida, horainicio, refrigerio) from registro;

pero no me sale me da error :(
ayudenme por favor
  #2 (permalink)  
Antiguo 14/11/2012, 11:08
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Sumar horas

¿Qué error te da? ¿Has probado datediff?

https://www.google.es/search?q=dated...ient=firefox-a
  #3 (permalink)  
Antiguo 14/11/2012, 11:17
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Sumar horas

Cita:
Iniciado por Heimish2000 Ver Mensaje
¿Qué error te da? ¿Has probado datediff?

https://www.google.es/search?q=dated...ient=firefox-a
hola gracias por responder probe con datediff y me devuelve NULL
  #4 (permalink)  
Antiguo 14/11/2012, 11:24
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Sumar horas

¿En qué formato lo quieres? ¿Horas, minutos, segundos, dias? ¿En qué formato está refrigerio? ¿Es también de fecha? ¿Puedes poner la consulta datediff que te devolvía null?
  #5 (permalink)  
Antiguo 14/11/2012, 11:27
 
Fecha de Ingreso: enero-2012
Mensajes: 158
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Sumar horas

Cita:
Iniciado por Heimish2000 Ver Mensaje
¿En qué formato lo quieres? ¿Horas, minutos, segundos, dias? ¿En qué formato está refrigerio? ¿Es también de fecha? ¿Puedes poner la consulta datediff que te devolvía null?
Hola gracias, esta en formato H:m.s solo hora minuto y segundos
  #6 (permalink)  
Antiguo 14/11/2012, 12:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Sumar horas

No es DATEDIFF() en ese caso, sino TIMEDIFF().
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 14/11/2012, 12:52
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Sumar horas

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
  1. mysql> SELECT * FROM tabla;
  2. +------+------------+------------+------------+
  3. | id   | horainicio | horasalida | refrigerio |
  4. +------+------------+------------+------------+
  5. |    1 | 08:20:00   | 18:40:00   | 00:30:00   |
  6. |    2 | 07:00:00   | 16:20:00   | 00:20:00   |
  7. |    3 | 08:31:51   | 18:40:54   | 01:03:59   |
  8. |    4 | 00:00:00   | 23:59:59   | 12:00:00   |
  9. |    5 | 08:29:41   | 16:59:15   | 00:29:00   |
  10. +------+------------+------------+------------+
  11. 5 rows in set (0.00 sec)
  12.  
  13. mysql> SELECT
  14.     ->   id, horainicio, horasalida, refrigerio,
  15.     ->   TIMEDIFF(TIMEDIFF(horasalida, horainicio), refrigerio) tiempo_activo
  16.     -> FROM tabla;
  17. +------+------------+------------+------------+---------------+
  18. | id   | horainicio | horasalida | refrigerio | tiempo_activo |
  19. +------+------------+------------+------------+---------------+
  20. |    1 | 08:20:00   | 18:40:00   | 00:30:00   | 09:50:00      |
  21. |    2 | 07:00:00   | 16:20:00   | 00:20:00   | 09:00:00      |
  22. |    3 | 08:31:51   | 18:40:54   | 01:03:59   | 09:05:04      |
  23. |    4 | 00:00:00   | 23:59:59   | 12:00:00   | 11:59:59      |
  24. |    5 | 08:29:41   | 16:59:15   | 00:29:00   | 08:00:34      |
  25. +------+------------+------------+------------+---------------+
  26. 5 rows in set (0.00 sec)

haz la prueba y nos comentas.

Saludos
Leo.

Etiquetas: horas, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:04.