Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - DATE_ADD mois d'intervalle

DATE_ADD fonctionne très bien avec des mois différents. Le problème est que vous ajoutez six mois au 2001-01-01 et le 1er juillet est censé être là.

Voici ce que vous voulez faire :

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)

OU

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

Pour en savoir plus, consultez documentation DATE_ADD .

*modifié pour corriger la syntaxe