sql >> Base de Datos >  >> RDS >> Mysql

Consulta MySQL:registros entre hoy y los últimos 30 días

Debe aplicar DATE_FORMAT en el SELECT cláusula, no el WHERE cláusula:

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()

También tenga en cuenta que CURDATE() devuelve solo el DATE parte de la fecha, por lo que si almacena create_date como DATETIME con la porción de tiempo llena, esta consulta no seleccionará los registros de hoy.

En este caso, deberá usar NOW en cambio:

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()