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

Necesito saber diferencia entre fechas con años y meses

Estas en el tema de Necesito saber diferencia entre fechas con años y meses en el foro de Mysql en Foros del Web. Alguien sabe como en mysql puedo ver la diferencia entre 2 fechas en años y meses, pues con timestampdiff(YEAR, fecha1, CURDATE()); solo me muestra la ...
  #1 (permalink)  
Antiguo 06/11/2014, 08:16
 
Fecha de Ingreso: noviembre-2013
Mensajes: 11
Antigüedad: 11 años
Puntos: 2
Necesito saber diferencia entre fechas con años y meses

Alguien sabe como en mysql puedo ver la diferencia entre 2 fechas en años y meses, pues con timestampdiff(YEAR, fecha1, CURDATE()); solo me muestra la diferencia en años.
  #2 (permalink)  
Antiguo 06/11/2014, 09:34
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Necesito saber diferencia entre fechas con años y meses

Hola Jirson_Tavera:

Hasta donde recuerdo, no hay ninguna forma "directa" de obtener el dato con el formato que quieres, sin embargo, se me ocurren otras formas para llegar a un resultado, igual y tendrías que hacer algo de trabajo extra:

Si checas la documentación hay muchas funciones de fecha y hora que te pueden servir:

http://dev.mysql.com/doc/refman/5.5/...functions.html

Por ejemplo, si checas, la función PERIOD_DIFF te regresa la diferencia EN MESES entre dos periodos...

Código MySQL:
Ver original
  1. mysql> SELECT PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM '2014-11-01'),
  2.     ->                    EXTRACT(YEAR_MONTH FROM '2012-10-30')) meses;
  3. +-------+
  4. | meses |
  5. +-------+
  6. |    25 |
  7. +-------+
  8. 1 row in set (0.00 sec)

observa que las fecha final es (2014-11-01) y la fecha inicial es (2012-10-30), para fines de cálculo, la función NO TOMA EN CUENTA LOS DÍAS, sólo el año y el mes... el resultado entonces son 25 meses... con este dato, lo único que tendrías que hacer es obtener la DIVISION ENTERA y el RESIDUO, de dividir entre 12... de tal manera que el resultado sea:

Código:
2 AÑOS, 1 MES
no te compliques la vida y haz uso de las funciones que ya tiene MySQL para este propósito:

http://dev.mysql.com/doc/refman/5.0/...functions.html

Haz la prueba y nos comentos.

Saludos
Leo.

Etiquetas: diferencia, meses, sql
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 22:29.