Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête MySQL - Enregistrements entre aujourd'hui et les 30 derniers jours

Vous devez appliquer DATE_FORMAT dans le SELECT clause, pas la WHERE clause :

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

Notez également que CURDATE() renvoie uniquement la DATE partie de la date, donc si vous stockez create_date en tant que DATETIME avec la partie heure remplie, cette requête ne sélectionnera pas les enregistrements d'aujourd'hui.

Dans ce cas, vous devrez utiliser NOW à la place :

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