J'ai une liste de plages de dates et j'aime obtenir une liste de tous les mois qui sont dans ces plages de dates. Je peux interroger mes plages de dates comme ceci:Liste des mois dans plusieurs périodes dans mysql
Select id, start, end
From date_range
Et cette requête donne la sortie suivante:
1, 01-01-2016, 25-03-2016
2, 26-03-2016, 30-03-2016
3, 30-12-2016, 08-01-2017
Maintenant, je voudrais trouver une requête MySQL qui répertorie seulement tous les mois au sein de ces plages de dates . Donc, il devrait donner les résultats suivants:
01-2016
02-2016
03-2016
12-2016
01-2017
Il existe déjà des exemples ici sur la façon d'obtenir une liste de mois entre deux dates, telles que:
- Creating a list of month names between two dates in MySQL
- How to get a list of months between two dates in mysql
Mais ces exemples concernent environ une seule plage de dates, mais j'ai plusieurs plages de dates. Ce serait génial si quelqu'un peut trouver une requête sql pour mon problème.
Votre question est un peu déroutant. Voulez-vous tous les mois dans les plages de dates, ou simplement le mois/année de chaque date de début/fin dans les plages? –
@Sloan: Je veux tous les mois dans les plages de dates. Donc, si une plage de dates s'étend sur 5 mois, alors tous les 5 mois devraient apparaître. –
Ceci est vraiment un problème d'affichage et, comme tel, mieux résolu dans le code d'application – Strawberry