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

MySQL-forespørgsel - Registrerer mellem i dag og sidste 30 dage

Du skal anvende DATE_FORMAT i SELECT klausulen, ikke WHERE klausul:

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

Bemærk også, at CURDATE() returnerer kun DATE del af datoen, så hvis du gemmer create_date som en DATETIME med tidsdelen udfyldt, vil denne forespørgsel ikke vælge dagens poster.

I dette tilfælde skal du bruge NOW i stedet:

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


  1. SQL - trækker en udtømningsværdi fra rækker

  2. Sender flere værdier i en enkelt parameter

  3. MySQL-ydelse:MyISAM vs InnoDB

  4. Database, der kan håndtere>500 millioner rækker