De retour des dossiers à partir de la dernière 3 mois seulement dans MySQL
J'ai une table avec un champ d'horodatage. Comment puis-je obtenir les données de ces 3 derniers mois?
En particulier, Mars est mon mois disons, 03/2012. J'ai besoin de renvoyer des enregistrements à partir du mois de Mars, février, janvier seulement.
Vous devez vous connecter pour publier un commentaire.
3 mois avant aujourd'hui:
Commencer avec le premier du mois:
Pour obtenir le premier jour du mois en cours, vous pouvez utiliser ceci:
si la date actuelle est
2013-03-13
, il sera de retour2013-03-01
, et il nous suffit de soustraire 2 mois à compter de cette date pour obtenir2013-01-01
. Votre question pourrait être comme ceci:En supposant que vous êtes à l'aide de SQL Server (Oracle, MySQL et d'autres ont les mêmes fonctions de date), vous pouvez utiliser la fonction dateadd à ajouter ou à soustraire d'un intervalle à la date actuelle.
Si vous voulez une période de trois mois, vous pouvez soustraire de 3 mois à partir d'aujourd'hui :
DATEADD(m,-3,getdate())
Mais, comme vous le dites, vous voulez seulement des données de janvier, février et Mars. Vous avez à faire un peu de calcul basé sur la date d'aujourd'hui:
dateadd(m,-2, CONVERT(datetime, CONVERT(VARCHAR(2), MONTH(getdate())) + '/01/' + CONVERT(VARCHAR(4), YEAR(getdate()))))
Et en fin de compte, obtenir une requête comme
--- edit ---
erf, je viens de remarquer le "mysql" tag... vous pouvez obtenir plus d'informations sur MySQL fonctions de date ici : https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Je sais que c'est une vieille question, mais peut-être sauver d'autres temps et de faire la somme des réponses ci-dessus pour le cas d'avoir besoin de (1) les dates à partir du mois en cours, et (2) les dates de l'avant 2 mois (communs lors de l'affichage de données statistiques):