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

MySQL - DATE_ADD odstęp miesięczny

DATE_ADD działa dobrze w różnych miesiącach. Problem polega na tym, że dodajesz sześć miesięcy do 2001-01-01 i 1 lipca ma tam być.

Oto, co chcesz zrobić:

SELECT * 
FROM mydb 
WHERE creationdate BETWEEN "2011-01-01" 
                   AND DATE_ADD("2011-01-01", INTERVAL 6 MONTH) - INTERVAL 1 DAY
GROUP BY MONTH(creationdate)

LUB

SELECT * 
FROM mydb 
WHERE creationdate >= "2011-01-01" 
AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
GROUP BY MONTH(creationdate)

Aby uzyskać więcej informacji, spójrz na DATA_ADD dokumentacja .

*edytowano w celu poprawnej składni



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grupuj MySQL według daty i konwertuj z uniksowego znacznika czasu

  2. Ochrona przed wstrzykiwaniem SQL za pomocą tylko str_replace

  3. Czy tabela może mieć wiele kluczy podstawowych?

  4. MySQL Używanie kolumny ciągu z tekstem daty jako polem daty

  5. Domyślne hasło mysql na serwerze ubuntu 16.04