Bonjour,

Savez vous récupérer le bon numéro de la semaine lorsque le DATEFIRST a changé.

Si la semaien commence un lundi (DATEFIRST=1) et si celle-ci commence un samedi (6) alors les bornes ne sont pas les mêmes et possibilité aussi que le numéro de la semaine soit différent.

Exemple avec les premiers jours de 2016
DATEFIRST = 1
Semaine 53 : du 28/12/2015 au 3/01/2016
Semaine 1 : du 4/01/2015 au 10 janvier 2016

DATEFIRST = 6
Semaine 53 : du 26/12/2015 au 01/01/2016
Semaine 1 : du 02/01/2015 au 08 janvier 2016

Mon souci :
Dans ma table je récupère bien les bonnes bornes pour DATEFIRST = 6, mais pas le bon n° de la semaine.

Pouvez-vous m'éclairer sur le sujet ?
Merci pour votre aide.

Voici une partie du corps de ma procédure :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
.....
select  @dw_number = datepart(dw,@dtDateJour)
    select  @to_first_dw = (@dw_number -1) * -1,  
            @to_last_dw = 7 - @dw_number          

    select  @wk_begin_date = dateadd(dd,@to_first_dw,@dtDateJour),
            @wk_end_date = dateadd(dd,@to_last_dw,@dtDateJour)

    SELECT @NoSemCalcul = convert(varchar(2),datepart(cwk,@wk_begin_date))
.....

En résultat j'ai :

NoSemCalcul = 52, wk_begin_date = Dec 26 2015, wk_end_date = Jan 1 2016
NoSemCalcul = 53, wk_begin_date = Jan 2 2016, wk_end_date = Jan 8 2016
NoSemCalcul = 1, wk_begin_date = Jan 9 2016, wk_end_date = Jan 15 2016
NoSemCalcul = 2, wk_begin_date = Jan 16 2016, wk_end_date = Jan 22 2016
....etc
Bonne journée,

Cdlt,
PatGabJoe