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
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?
¿Por qué la fecha está en un varchar y no en un campo de fecha?
Cita de: diproxt en 30 Marzo 2014, 05:20 AM
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
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