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

Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Estas en el tema de Ordernar datos teniendo en cuenta la fecha y x dias pasados. en el foro de Mysql en Foros del Web. Hola que tal Estoy haciendo una consulta a mi base de datos de la siguiente manera: Código PHP: SELECT  *  FROM noticias WHERE estado  =  '1'  ORDER BY karma DESC LIMIT 20  cada ...
  #1 (permalink)  
Antiguo 07/05/2008, 16:17
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 9 meses
Puntos: 2
Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Hola que tal

Estoy haciendo una consulta a mi base de datos de la siguiente manera:

Código PHP:
SELECT FROM noticias WHERE estado '1' ORDER BY karma DESC LIMIT 20 
cada noticia tiene el campo fecha en formato 'timestamp' , asi que guarda la fecha en que la noticia se agrego con el formato: 2008-04-20 06:21:51

lo que quisiera saber es si en mysql directamente puedo hacer que en la consulta solo me muestre las noticias de x dias pasados, es decir me muestre por ejemplo solo las noticias de los ultimos 7 dias, o de los ultmos 30 dias, etc etc.

Un abrazo y gracias.
  #2 (permalink)  
Antiguo 07/05/2008, 16:27
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Saludos

Prueba de la siguiente manera:

Cita:
select fecha, TIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) as Minutos, now() as HORA_ACTUAL
from noticias
where estado='1' AND TIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) = '168:00:00' ORDER BY fecha DESC
//Que seria equivalente a 7 dias
Pienso que asi te podria funcionar, de igual forma prueba y si algo lo comentas.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 07/05/2008 a las 16:36
  #3 (permalink)  
Antiguo 07/05/2008, 17:42
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 9 meses
Puntos: 2
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Gracias nano por tu respuesta, bueno te cuento que no me da resultado, la ejecuto tal como tu me dices:

Código PHP:
select fechaTIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) as Minutosnow() as HORA_ACTUAL
from noticias
where estado
='1' AND TIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) = '168:00:00' ORDER BY fecha DESC 
pero de esta forma no me tira ningun error ni tampoco ningun resultado.

ahora le quite el where estado='1' quedandome asi la llamada:

Código PHP:
select fechaTIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) as Minutosnow() as HORA_ACTUAL
from pornoticias 
AND TIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(fecha,'%Y-%m-%d %H:%i:%s')) = '168:00:00' ORDER BY fecha DESC 
y me tira el siguiente error:

Código:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND TIMEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),DATE_FORMAT(

Un saludo y gracias
  #4 (permalink)  
Antiguo 07/05/2008, 18:06
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 9 meses
Puntos: 2
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Bueno luego de mucho buscar, encontre este tipo de llamada:

Código PHP:
SELECT FROM noticias WHERE estado '1' AND DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= fecha ORDER BY karma DESC 

hasta ahora parece que funciona perfecto, pero me gustaría saber si alguien conoce exactamente las limitaciones.
  #5 (permalink)  
Antiguo 07/05/2008, 18:15
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 9 meses
Puntos: 2
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

bueno pues ya le encontre el primer problema, parece que el minimo valor posible para mostrar los registros es de 1 dias, es decir no podria mostrar los registros de hace 1 hora o de hace 6 horas etc etc.
  #6 (permalink)  
Antiguo 08/05/2008, 01:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

Cita:
Iniciado por oscarva Ver Mensaje
bueno pues ya le encontre el primer problema, parece que el minimo valor posible para mostrar los registros es de 1 dias, es decir no podria mostrar los registros de hace 1 hora o de hace 6 horas etc etc.
Puedes encontrar los registros de hace horas, minutos, microsegundos, horas y minutos, etc.
Por ejemplo, la sintaxis para encontrar las noticias de menos de hace dos horas sería la que te pongo debajo ( Fíjate en las comillas. Revisa la sintaxis de date_add y date_sub en el manual). Existe la posibilidad de usar DATE_ADD con número negativo.

SELECT * FROM tabla WHERE campofecha > date_sub(curdate(), INTERVAL '2' HOUR)

Última edición por jurena; 08/05/2008 a las 03:29
  #7 (permalink)  
Antiguo 08/05/2008, 10:35
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 19 años, 9 meses
Puntos: 2
Re: Ordernar datos teniendo en cuenta la fecha y x dias pasados.

gracias jurena probare asi como me dices y posteo los resultados.

saludos
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 21:01.