Requéte Table calendrier sur 100 années

bonjour

Une table de calendrier peut être extrêmement utile surtout en développement et pour faire du jointure avec d’autre table

ci joint une petit requête qui vous  permettra de crée un table calendrier sur x temps

Quelque remarque

*set datefirst 1 :le premier jour de la semaine est un lundi et non plus un dimanche msdn

*on définit une date de début et une date de fin

*where dateadd(day,n,@stardate)<=@endate: ce ci  nous permettre d'incrémenter de 1 jour en 1 jour la variable n pour pouvoir à terme arrêter la boucle

*le colonne type_jour indiquant si le jour est travaillé ou non

set datefirst 1 declare @stardate date ='2000-01-01'
declare @endate date ='2100-01-01'; 
with cte as (select 1 as n ,@stardate as date_jour, 
convert(varchar(10),@stardate,131)as date_format_hijri, 
datepart(day,@stardate)as num_jour,
datepart(weekday,@stardate)as num_jour_semaine, 
datepart(dayofyear,@stardate)as num_jour_année, 
datepart(week,@stardate)as num_semaine,
datepart(QUARTER,@stardate)as trimesstre,
datename(weekday,@stardate)as nom_jour, 
datename(month,@stardate)as nom_mois,
year(@stardate)as année, case when datepart(weekday,@stardate)in(6,7)then 'weekend' else 'no_weekend' end as type_jour
union all 
select n+1,
dateadd(day,n,@stardate),
convert(varchar(10),dateadd(day,n,@stardate),131), 
datepart(day,dateadd(day,n,@stardate)), 
datepart(weekday,dateadd(day,n,@stardate)), 
datepart(dayofyear,dateadd(day,n,@stardate)),
datepart(week,dateadd(day,n,@stardate)), 
datepart(QUARTER,dateadd(day,n,@stardate)),
datename(weekday,dateadd(day,n,@stardate)),
datename(month,dateadd(day,n,@stardate))
,year(dateadd(day,n,@stardate)), case when datepart(weekday,dateadd(day,n,@stardate))in(6,7)then 'weekend' else 'no_weekend' end 
from cte where dateadd(day,n,@stardate)<=@endate )
select * from cte OPTION (MAXRECURSION 0) 

sans-titre

ce ci est les jours de 2000 à 2100 inclus

bonne chance A+

Une réflexion sur “Requéte Table calendrier sur 100 années

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.