Maison > base de données > tutoriel mysql > Comment puis-je générer efficacement des dates dans MySQL pour le reporting de données sans utiliser de tables ou de variables temporaires ?

Comment puis-je générer efficacement des dates dans MySQL pour le reporting de données sans utiliser de tables ou de variables temporaires ?

Barbara Streisand
Libérer: 2024-12-17 11:21:24
original
662 Les gens l'ont consulté

How Can I Efficiently Generate Dates in MySQL for Data Reporting Without Using Temporary Tables or Variables?

Génération de dates efficace pour les rapports de données

Dans MySQL, générer une série de dates dans une plage spécifiée est essentiel pour créer des rapports de données complets. Une approche courante consiste à créer une table remplie de nombreuses dates, mais ce n'est pas une solution efficace.

Pour résoudre ce problème, envisagez un scénario dans lequel la création de tables temporaires ou la définition de variables est restreinte. Pour générer des dates dans une période spécifique, telle que l'année en cours, la requête MySQL suivante fournit une solution efficace :

select * from 
(select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date from
 (select 0 t0 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 t1 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 t2 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 t3 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 t4 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 gen_date between '2017-01-01' and '2017-12-31'
Copier après la connexion

Cette requête utilise une série imbriquée de sous-requêtes qui combinent différentes valeurs (0-9) pour créer des dates du 1er janvier 1970 au 31 décembre 2017. La fonction adddate() est ensuite utilisée pour décaler ces dates vers la période souhaitée.

En utilisant ceci approche, vous pouvez générer efficacement une série de dates pour le reporting et l'analyse des données, sans avoir besoin de tables temporaires ou d'affectation de variables.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal