Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL - Registros entre hoje e os últimos 30 dias


Você precisa aplicar DATE_FORMAT no SELECT cláusula, não a WHERE cláusula:
SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()

Observe também que CURDATE() retorna apenas a DATE parte da data, portanto, se você armazenar create_date como DATETIME com o tempo preenchido, esta consulta não selecionará os registros de hoje.

Nesse caso, você precisará usar NOW em vez de:
SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()