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

datediff problema

Estas en el tema de datediff problema en el foro de Mysql en Foros del Web. Hola, tengo un miniforo que le quiero dar un límite de 180 días 6 meses para responder a los posts estoy usando el datediff en ...
  #1 (permalink)  
Antiguo 02/02/2011, 08:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 16 años
Puntos: 2
Sonrisa datediff problema

Hola, tengo un miniforo que le quiero dar un límite de 180 días 6 meses para responder a los posts estoy usando el datediff en el mysql así.

Código:
"SELECT url, fecha FROM opinion WHERE datediff(now(),fecha) <=180 && url='$prod'";

Veo que sólo funciona cuando está en el mismo año 2011

Pero si la fecha del post es 2010-12-01 01:05:33 no han pasado 180 días, no la muestra, ¿alguna solución para años diferentes?
  #2 (permalink)  
Antiguo 02/02/2011, 10:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: datediff problema

Eso no debería darte problemas.

Aunque sean años diferentes, la función tiene en cuenta hasta años bisiestos.

seguro ese es el problema? no será la otra condición?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 02/02/2011, 10:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 16 años
Puntos: 2
Respuesta: datediff problema

¿Puede ser porque el campo es un date time y no un date? La otra condición sólo me trae los posts de ese producto.

Edito pues sí he quitado la segunda condición y me trae todos los posts que cumplen con la condición del tiempo, ahora la cosa es que cumplan las dos, no debería haber problema.

Última edición por jordi45; 02/02/2011 a las 11:16
  #4 (permalink)  
Antiguo 02/02/2011, 11:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 16 años
Puntos: 2
Respuesta: datediff problema

¿Cómo pongo la otra condición? he probado a ponerla delante o detras de la otra y siempre me saca mal las fechas, pero si no pongo otra condición me lo hace bien pero sacando todos los posts de todos los productos. ¿Aunque funciona no sé si es posible o no, para ahorrarle cálculo a la máquina?

Última edición por jordi45; 02/02/2011 a las 11:48
  #5 (permalink)  
Antiguo 02/02/2011, 13:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: datediff problema

SELECT url, fecha FROM opinion WHERE datediff(CURDATE(),DATE(fecha)) <=180 AND url='$prod'";
SELECT url, fecha FROM opinion WHERE datediff(NOW(),fecha) <=180 AND url='$prod'";
  #6 (permalink)  
Antiguo 02/02/2011, 17:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 16 años
Puntos: 2
Respuesta: datediff problema

Ya probé con el AND en vez de && y no sale.
  #7 (permalink)  
Antiguo 02/02/2011, 20:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: datediff problema

raro raro.... eso no debería dar problemas.

si quieres nos das la estructura de la tabla opinion y unos registros de prueba donde se presente el fenomeno. Lo corremos en nuuestros mysqls para ver que pasa.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 03/02/2011, 02:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: datediff problema

Yo sospecho que el problema es el paso de la variable, es decir, que $prod no lleva consigo ningún valor. Quita eso de la consulta o, mejor, haz un echo en el PHP a la consulta para ver qué estás cargando, o pon el valor absoluto y veremos si el problema es de MySQL o de PHP.
  #9 (permalink)  
Antiguo 03/02/2011, 06:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 16 años
Puntos: 2
Respuesta: datediff problema

Edito: la variable dentro del while del php tenía nombre diferente a la consulta sql que estaba puesta con otro nombre $variable=mysql_fecth_asocc($sql) por eso daba error.
Un despiste, el php era el array de esta consulta comparándolo con el campo fecha si coinciden muestra el enlace responder.

Última edición por jordi45; 04/02/2011 a las 05:46

Etiquetas: datediff
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 06:51.