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

Diferencia, en meses entre dos fechas

Estas en el tema de Diferencia, en meses entre dos fechas en el foro de Mysql en Foros del Web. Quisiera mostrar la diferencia (en meses) que existe entre la fecha actual y la fecha que ingresa un usuario. Lo intento de este modo... $d1 ...
  #1 (permalink)  
Antiguo 22/09/2011, 00:21
 
Fecha de Ingreso: diciembre-2002
Mensajes: 7
Antigüedad: 21 años, 3 meses
Puntos: 0
Diferencia, en meses entre dos fechas

Quisiera mostrar la diferencia (en meses) que existe entre la fecha actual y la fecha que ingresa un usuario.
Lo intento de este modo...

$d1 = 'CURDATE';
$d2 = 'fecha_inic';

$duracion = mysql_query("SELECT DATEDIFF(@d1,@d2) AS 'd1 - d2'");

Me muestra el siguiente error:

Resource id #2

Gracias de antemano.
  #2 (permalink)  
Antiguo 22/09/2011, 01:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Diferencia, en meses entre dos fechas

$d2 = 'YYYY-mm-dd'; <--- debes estar seguro que llega en este formato

$duracion = mysql_query("SELECT DATEDIFF(NOW(),".$d2.",) AS 'd1 - d2'");

Manual

Cita:
DATEDIFF() returns expr1 – expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 22/09/2011, 10:44
 
Fecha de Ingreso: diciembre-2002
Mensajes: 7
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Diferencia, en meses entre dos fechas

Gracias quim, pero no resulta.

Intento con esto otro, que cuenta los meses entre dos fechas,

$duracion = mysql_query("SELECT period_diff( date_format( 'CURDATE()' , '%Y%m' ) , date_format( 'fecha_inic', '%Y%m' ) )");

Tampoco funciona, sigue dando el error

Resource id #2
  #4 (permalink)  
Antiguo 22/09/2011, 13:31
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 6 meses
Puntos: 91
Respuesta: Diferencia, en meses entre dos fechas

Prueba con esta función:

Código MySQL:
Ver original
  1. SELECT TIMESTAMPDIFF(MONTH,NOW(),'2003-05-01');

El error debe ser por tu conector a la base de datos, especificaselo explicitamente, así

Código PHP:
Ver original
  1. mysql_query("SELECT TIMESTAMPDIFF(MONTH,NOW(),'2003-05-01')",$mysqlconn);
  2. //cambia $mysqlconn por tu conector

Suerte.
  #5 (permalink)  
Antiguo 22/09/2011, 19:47
 
Fecha de Ingreso: diciembre-2002
Mensajes: 7
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Diferencia, en meses entre dos fechas

Gracias Ribon, pero tampoco resulta.

No insistiré más porque trataré de resolverlo, simplemente con PHP.

De todas formas la fecha que ingresa el usuario es variable y esta la cotejo con la fecha actual. Debo mostrar el tiempo transcurrido entre esas dos fechas.

En MySql, la funcion que podria servir es SELECT PERIOD_DIFF
pero sigue siendo complicado.

La otra, SELECT DATEDIFF no sirve porque entrega el resultado en dias y no puedo usarla porque trabajo con "'fecha_inic" y no con '2007-12-30'

GRACIAS DE TODOS MODOS

Etiquetas: diferencia, meses, query, select, 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:41.