Maison > base de données > tutoriel mysql > Comment générer toutes les dates dans plusieurs plages de dates à l'aide de SQL ?

Comment générer toutes les dates dans plusieurs plages de dates à l'aide de SQL ?

Mary-Kate Olsen
Libérer: 2025-01-04 22:32:40
original
145 Les gens l'ont consulté

How to Generate All Dates Within Multiple Date Ranges Using SQL?

Générer des dates entre plusieurs plages de dates

Lorsque vous traitez plusieurs plages de dates, générer toutes les dates dans ces plages peut être un défi. Explorons une solution efficace qui gère ce scénario.

L'entrée fournie se compose de deux plages de dates :

ID  START_DATE      END_DATE 
101 April, 01 2013  April, 10 2013 
102   May, 10 2013    May, 12 2013
Copier après la connexion

Notre objectif est de générer un tableau de sortie qui répertorie toutes les dates comprises dans ces plages :

ID  Dates
101 April, 01 2013 
101 April, 02 2013  
101 April, 03 2013  
101 April, 04 2013  
101 April, 05 2013  
101 April, 06 2013  
101 April, 07 2013  
101 April, 08 2013  
101 April, 09 2013  
101 April, 10 2013  
102   May, 10 2013  
102   May, 11 2013  
102   May, 12 2013
Copier après la connexion

Pour y parvenir, nous pouvons utiliser la requête SQL suivante :

select 
  A.ID, 
  A.START_DATE+delta dt
from 
  t_dates A, 
  (
     select level-1 as delta 
     from dual 
     connect by level-1 <= (
       select max(end_date - start_date) from t_dates
     )
  )
where A.START_DATE+delta <= A.end_date
order by 1, 2
Copier après la connexion

La requête génère tous les différences de date dans la plage de dates maximale, puis les ajoute à chaque date de début pour produire le résultat souhaité.

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