Ver Mensaje Individual
  #11 (permalink)  
Antiguo 18/04/2013, 05:14
maialenlopez
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: restar las horas de un datetime en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Mira, para hacertelo simple, esta consulta no tiene errores.
Te lo muestro con una tabla mía, donde hay dos campos de entrada/salida (desde y hasta). Quito el noperario", porque no lo tengo en esa tabla, pero a los efectos de esta prueba, sirve:
Código MySQL:
Ver original
  1. mysql> SELECT desde, hasta, SEC_TO_TIME(TIMESTAMPDIFF(SECOND, desde, hasta)) HORAS
  2.     -> FROM `conduccion`
  3.     -> WHERE
  4.     ->     YEAR(desde) = 2011
  5.     ->     AND MONTH(desde) = 04
  6.     ->     AND YEAR(hasta) = 2011
  7.     ->     AND MONTH(hasta) = 04
  8.     -> LIMIT 10;
  9. +---------------------+---------------------+----------+
  10. | desde               | hasta               | HORAS    |
  11. +---------------------+---------------------+----------+
  12. | 2011-04-30 15:51:25 | 2011-04-30 15:51:45 | 00:00:20 |
  13. | 2011-04-30 15:54:05 | 2011-04-30 15:54:05 | 00:00:00 |
  14. | 2011-04-30 16:02:09 | 2011-04-30 16:02:19 | 00:00:10 |
  15. | 2011-04-30 15:54:15 | 2011-04-30 15:57:05 | 00:02:50 |
  16. | 2011-04-30 15:58:25 | 2011-04-30 15:58:35 | 00:00:10 |
  17. | 2011-04-30 15:59:05 | 2011-04-30 15:59:05 | 00:00:00 |
  18. | 2011-04-30 16:13:33 | 2011-04-30 16:16:13 | 00:02:40 |
  19. | 2011-04-30 16:16:43 | 2011-04-30 16:17:03 | 00:00:20 |
  20. | 2011-04-30 17:45:35 | 2011-04-30 17:45:35 | 00:00:00 |
  21. | 2011-04-30 17:45:55 | 2011-04-30 17:46:25 | 00:00:30 |
  22. +---------------------+---------------------+----------+
  23. 10 rows in set (0.08 sec)
Como puedes ver, funciona, no hay errores sintácticos, así que el problema lo debe estar generando el HeidiSQL, y no la consulta, y allí no puedo ayudarte porque no lo uso.
Ahora me va perfecto, lo he echo en el programa que estoy haciendo y va perfecto como tu has puesto asi que deduzco que es el HeidiSQL que no me deja hacerlo.

Pero tengo un problema, a ver si me podrías ayudar. Imaginate esta tabla:
HIGHLIGHT="MySQL"]mysql>
+---------------------+---------------------+
| desde | hasta |
+---------------------+---------------------+
| 2011-04-09 22:00:25 | 2011-04-10 02:00:00 |
| 2011-04-10 02:05:00 | 2011-04-10 06:00:00 |
| 2011-04-10 22:00:25 | 2011-04-11 02:30:00 |
| 2011-04-11 02:35:00 | 2011-04-11 06:00:00 |
+---------------------+---------------------+----------+
10 rows in set (0.08 sec)[/HIGHLIGHT]

Son dos relevos de noche de una persona en el mes de abril. como harias para calcular las horas transcurridas?

Un saludo y gracias
__________________
Gracias por todo;

Un saludo