sql >> Databasteknik >  >> RDS >> Mysql

MySQL - DATE_ADD månadsintervall

DATE_ADD funkar bra med olika månader. Problemet är att du lägger till sex månader till 2001-01-01 och 1 juli är tänkt att vara där.

Det här är vad du vill göra:

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)

ELLER

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

För ytterligare lärande, ta en titt på DATE_ADD dokumentation .

*redigerad för att korrigera syntax



  1. Hur väljer jag alla kolumner från en tabell, plus ytterligare kolumner som ROWNUM?

  2. Känn till relationer mellan alla tabeller i databasen i SQL Server

  3. MySQL sammanfogar tabeller där tabellnamnet är ett fält i en annan tabell

  4. Det vanliga MySQL-felet:"Fick ett fel när kommunikationspaketet lästes"