Maison >base de données >tutoriel mysql >Comment générer des plages de dates dans MySQL à l'aide de l'arithmétique des dates et des sous-requêtes ?

Comment générer des plages de dates dans MySQL à l'aide de l'arithmétique des dates et des sous-requêtes ?

DDD
DDDoriginal
2025-01-19 01:07:08231parcourir

How to Generate Date Ranges in MySQL Using Date Arithmetic and Subqueries?

Utilisez les opérations de date et les sous-requêtes MySQL pour générer des plages de dates

En SQL, la récupération d'une liste de dates dans une plage spécifiée peut être obtenue en utilisant une combinaison d'opérations de date et de sous-requêtes. Voici comment y parvenir :

Afin de générer une liste de dates entre deux dates, nous pouvons utiliser la méthode des sous-requêtes. Un ensemble imbriqué de sous-requêtes, chacune générant une séquence de nombres (de 0 à 9) qui sont combinés par addition pour former la valeur de date souhaitée.

La requête suivante illustre cette technique :

<code class="language-sql">select * from
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
 (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
where selected_date between '2012-02-10' and '2012-02-15'</code>

Cette requête générera une liste de dates allant du « 2012-02-10 » au « 2012-02-15 » (inclus). Les résultats sont les suivants :

<code>date
----------
2012-02-10
2012-02-11
2012-02-12
2012-02-13
2012-02-14
2012-02-15</code>

Cette méthode permet de générer des plages de dates s'étendant sur près de 300 ans dans le futur ou dans le passé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn