Pour obtenir dynamiquement les dates dans une plage de dates en utilisant SQL, vous pouvez le faire (par exemple dans une base MySQL):
Créer une table pour contenir les numéros 0 à 9.
CREATE TABLE ints (i tinyint(4));
insert into ints (i)
values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
exécuter une requête comme ceci:
select ((curdate() - interval 2 year) + interval (t.i * 100 + u.i * 10 + v.i) day) AS Date
from
ints t
join ints u
join ints v
having Date between '2015-01-01' and '2015-05-01'
order by t.i, u.i, v.i
Cela va générer toutes les dates entre 1er janvier 2015 et 1er mai 2015.
Output
2015-01-01
2015-01-02
2015-01-03
2015-01-04
2015-01-05
2015-01-06
...
2015-05-01
La requête joint la table ints 3 fois et obtient un nombre d'incrémentation (0 à 999). Il ajoute ensuite ce nombre en tant qu'intervalle de jour à partir d'une certaine date, en l'occurrence une date il y a 2 ans. Il est possible d'obtenir toute période de 2 ans et de 1 000 jours avec l'exemple ci-dessus. Pour générer une requête qui génère des dates pour plus de 1 000 jours, il suffit de rejoindre la table ints une fois de plus pour autoriser jusqu'à 10 000 jours d'intervalle, et ainsi de suite.
Bienvenue chez SO ivar. Je pense que vous devez ajouter plus de détails sur ce que vous interrogez et comment? –
Plus de détails seraient nécessaires ... quelle langue utilisez-vous? Quel système est-ce? – Mala
Quel est le type de votre colonne de date? Est-ce une DATE ou un VARCHAR? –