Numéro de semaine – Norme ISO

Par Djeepy1

Il y a plusieurs façons de calculer le N° de semaine. J’y ai déjà été confronté il y a quelques années.

Il y a une norme ISO qui est notamment utilisée par les calendriers papier (http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines).

On peut avoir ce comportement dans Outlook ; il faut le configurer ici :

Calendar Properties
clip_image002

Le problème se pose quand on doit l’utiliser dans du code. J’ai notamment eu le cas dans un rapport Reporting Services.

J’utilise l’expression suivante :

DatePart(“ww”, Fields!MaDate.Value)

Or, cette instruction ne se base pas sur la norme ISO mais démarre au 1er janvier.

En T-SQL, on peut avoir le bon calcul en changeant la constante :

SELECT DATEPART(ISOWK, '2010-01-04')

Mais cette constante n’existe pas dans le moteur d’expression de Reporting Services…

Donc il vous faudra vous baser sur un bout de code embarqué.

Et hop, une remontée de plus sur Connect.

Mots-clefs : ,

2 réponses à “Numéro de semaine – Norme ISO”

  1. Chris dit :

    Et si tu ajoutais une col calculée à ta table
    Ou bien une vue qui ajoutes les infos que tu veux.
    Pfff pas si puissant que ça SSRS.
    :-)

  2. djeepy1 dit :

    Oui, c’est une solution, laisser SQL Server le calculer et l’avoir comme champ dans le DataSet.
    Mais bon, si tu es en MDX et que tu ne l’as pas dans ta dimension Temps.

Répondre