Mysql
 sql >> Database >  >> RDS >> Mysql

Query MySQL:record tra oggi e gli ultimi 30 giorni

Devi applicare DATE_FORMAT nel SELECT clausola, non il WHERE clausola:

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

Nota anche che CURDATE() restituisce solo il DATE parte della data, quindi se memorizzi create_date come DATETIME con la parte temporale riempita, questa query non selezionerà i record di oggi.

In questo caso, dovrai utilizzare NOW invece:

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