Maison >base de données >tutoriel mysql >Comment générer une plage de dates séquentielle dans MySQL pour la visualisation de données ?

Comment générer une plage de dates séquentielle dans MySQL pour la visualisation de données ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 19:48:17468parcourir

How to Generate a Sequential Date Range in MySQL for Data Visualization?

Créer une plage de dates séquentielle dans MySQL pour le graphique de croissance de la base d'utilisateurs

Pour créer une plage de dates séquentielle dans MySQL, même pour les jours sans enregistrement , vous pouvez utiliser la technique suivante :

<br>SELECT DATE_ADD('2003-01-01 00:00:00.000', INTERVAL n5.num<em>10000 n4.num</em>1000 n3.num<em>100 n2.num</em>10 n1.num DAY ) AS date<br>DE<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n1,<br>(SELECT 0 AS num UNION ALL SÉLECTION 1 UNION SÉLECTION TOUS 2 UNION SÉLECTION TOUS 3 UNION SÉLECTION TOUS 4 UNION SÉLECTION TOUS 5 UNION SÉLECTION TOUS 6 UNION SÉLECTION TOUS 7 UNION SÉLECTION TOUS 8 UNION ALL SELECT 9) n2,<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n3,<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n4,<br>(SELECT 0 AS num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) n5<br>OÙ date >='02/01/2011 00:00:00.000' ET date < NOW()<br>ORDER BY date<br>

La requête génère une plage séquentielle de dates en combinant les colonnes n1 à n5, chacune représentant un chiffre unique. La plage totale est déterminée par la valeur maximale de chaque colonne (par exemple, si n3 a une valeur maximale de 3, la plage s'étend sur 399 jours).

Pour limiter la plage de dates, remplacez simplement la clause WHERE par la intervalle de date souhaité, tel que :

<br>WHERE date >= MIN(your_table_date_field) AND date &Lt; MAINTENANT()<br>

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