Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie MySQL — rekordy od dnia dzisiejszego do ostatnich 30 dni

Musisz zastosować DATE_FORMAT w SELECT klauzula, a nie WHERE klauzula:

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

Zauważ też, że CURDATE() zwraca tylko DATE część daty, więc jeśli przechowujesz create_date jako DATETIME po wypełnieniu części czasu to zapytanie nie wybierze dzisiejszych rekordów.

W takim przypadku musisz użyć NOW zamiast tego:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatywa dla słowa kluczowego LIMIT w podzapytaniu w MYSQL

  2. Java:Wstaw wiele wierszy do MySQL za pomocą PreparedStatement

  3. Czy mogę wykonać wiele zapytań oddzielonych średnikami za pomocą MySQL Connector/J?

  4. Jak zainstalować MySQL 8 na Ubuntu?

  5. MySQL Z klauzulą