Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: diproxt en 30 Marzo 2014, 05:20 am



Título: consulta con INTERVAL, fechas en Mysql
Publicado por: diproxt en 30 Marzo 2014, 05:20 am
Hola, no tengo mucha experiencia con fechas en Mysql y me han sacado un gran dolor de cabeza

Quiero hacer una query para seleccionar datos con rango de fecha de 1 día atrás, 1 semana, 1 mes, etc. Aplicando el sgte código no me resulta del todo bien

Las fechas en mi BD son varchar con formato 30/12/2013

Código:
SELECT * FROM agenda WHERE DATE_SUB( CURDATE( ) , INTERVAL 1 DAY ) <= STR_TO_DATE( AH_Fecha,  '%d/%m/%Y' )

el resultado da fechas superiores a esa, alguien me puede ayudar?


Título: Re: consulta con INTERVAL, fechas en Mysql
Publicado por: Carloswaldo en 31 Marzo 2014, 17:28 pm
¿Por qué la fecha está en un varchar y no en un campo de fecha?

Código:
SELECT * FROM agenda WHERE DATE_SUB( CURDATE( ) , INTERVAL 1 DAY ) <= STR_TO_DATE( AH_Fecha,  '%d/%m/%Y' )

¿Qué es exactamente lo que quieres hacer? La consulta hace lo que le dices, si CURDATE() es 31/03/2014, le restas un rango de 1 día y tienes 30/03/2014, y le estás diciendo que esta fecha tiene que ser menor o igual a la que tomas del campo: 30/03/2014 <= 1/04/2014 da TRUE


Título: Re: consulta con INTERVAL, fechas en Mysql
Publicado por: diproxt en 31 Marzo 2014, 21:00 pm
exactamente ese era mi error, estaba trabajando con varchar y es necesario el tipo date ya que al hacer la conversión de varchar a date arrojaba fechas con formato año-mes-dia. Por eso no funcionaba la consulta

Vi un poco tarde la respuesta pero gracias de todas formas Carloswaldo