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

duda con datadiff de mysql

Estas en el tema de duda con datadiff de mysql en el foro de Mysql en Foros del Web. hola tengo una duda sobre ese datadiff. cuando voy a hacer una consulta con ese datadiff el me puede dar la diferencia entre dos horas ...
  #1 (permalink)  
Antiguo 27/04/2011, 11:59
 
Fecha de Ingreso: julio-2010
Mensajes: 523
Antigüedad: 14 años, 4 meses
Puntos: 4
duda con datadiff de mysql

hola tengo una duda sobre ese datadiff. cuando voy a hacer una consulta con ese datadiff el me puede dar la diferencia entre dos horas tambn? osea e visto ejemplos por alli que muestran que la primera fecha lleva obvio la fecha y la hora completa y la segunda fecha lleva solo la fecha sin hora pero si yo coloco las dos con fecha y hora me da la diferencia en minutos segundos o depende de como sea? es posible hacer eso¡?
  #2 (permalink)  
Antiguo 27/04/2011, 12:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: duda con datadiff de mysql

Para eso puedes usar o bien TIMESTAMPDIFF() o TIMEDIFF(). Fijate en el manual de referencia (para eso sirve): 12.5. Funciones de fecha y hora
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/04/2011, 12:26
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: duda con datadiff de mysql

Hola eduardo160:

la función DATEDIFF te regresa la diferencia en días entre dos fechas, pero sin tomar en cuenta las horas. si quieres obtener la diferencia en horas, minutos y segundos seberás utilizar TIMEDIFF(), te pongo un ejemplo de las dos funciones para que observes las diferencias:

Código MySQL:
Ver original
  1. mysql> select datediff('2011-04-28 00:00:00', '2011-04-27 23:59:59');
  2. +--------------------------------------------------------+
  3. | datediff('2011-04-28 00:00:00', '2011-04-27 23:59:59') |
  4. +--------------------------------------------------------+
  5. |                                                      1 |
  6. +--------------------------------------------------------+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> select timediff('2011-04-28 00:00:00', '2011-04-27 23:59:59');
  10. +--------------------------------------------------------+
  11. | timediff('2011-04-28 00:00:00', '2011-04-27 23:59:59') |
  12. +--------------------------------------------------------+
  13. | 00:00:01                                               |
  14. +--------------------------------------------------------+
  15. 1 row in set (0.00 sec)

Si observas en las dos funciones estoy enviando las mismas fechas, pero DATEDIFF me regresa un 1, independientemente que la diferencia entre ambas fechas sea de apenas 1 segundo. La función TIME por su parte me regresa justamente una diferencia de 1 segundo entre las fechas. Espero que te pueda servir la ayuda.

Saludos
leo.

Etiquetas: Ninguno
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 13:53.