Comment : |
Le numéro de semaine renvoyé par HNAME et HPART peut provenir de l'année précédente ou suivante de la date d'entrée.
La fonction HYYWD renvoie le numéro d'année et de semaine d'une valeur date-heure donnée.
Pour les dates contenant des numéros de semaine, comme yyyy-Www-d, la sortie est modifiée pour correspondre au format standard ISO.
HYYWD(dtvalue, output)
où :
Date-heure
est la valeur date-heure à modifier, le nom d'un champ date-heure qui contient la valeur, ou une expression qui renvoie la valeur.
Alphanumérique
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.
Le champ doit être d'une longueur minimale de 10 caractères. La sortie est au format :
yyyy-Www-d
où :
est l'année à quatre chiffres.
est le numéro de semaine à deux chiffres (compris entre 01 et 53).
est le jour de la semaine à un chiffre. La valeur 'd' est relative au paramètre actuel WEEKFIRST. Si WEEKFIRST a la valeur 2 ou ISO2 (lundi), lundi est représenté dans la sortie comme 1 et mardi comme 2.
Avec la fonction EDIT, vous pouvez extraire les sous-champs secondaires individuels de cette sortie.
La requête suivante, qui utilise la source de données VIDEOTR2, appelle HYYWD pour convertir le champ date-heure TRANSDATE au format standard ISO pour les dates contenant des numéros de semaine. Le paramètre WEEKFIRST est au format ISO2, qui produit le numérotage de semaine standard ISO :
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); BY TRANSDATE WHERE QUANTITY GT 1 END
La sortie est :
TRANSDATE TRANSTOT QUANTITY ISODATE --------- -------- -------- ------- 1991/06/24 04:43 16.00 2 1991-W26-1 1991/06/25 01:17 2.50 2 1991-W26-2 1991/06/27 02:45 16.00 2 1991-W26-4 1996/08/17 05:11 5.18 2 1996-W33-6 1998/02/04 04:11 12.00 2 1998-W06-3 1999/01/30 04:16 13.00 2 1999-W04-6 1999/04/22 06:19 3.75 3 1999-W16-4 1999/05/06 05:14 1.00 2 1999-W18-4 1999/08/09 03:17 15.00 2 1999-W32-1 1999/09/09 09:18 14.00 2 1999-W36-4 1999/10/16 09:11 5.18 2 1999-W41-6 1999/11/05 11:12 2.50 2 1999-W44-5 1999/12/09 09:47 5.18 2 1999-W49-4 1999/12/15 04:04 2.50 2 1999-W50-3
La requête suivante, qui utilise la source de données VIDEOTR2, appelle HYYWD pour convertir le champ date-heure TRANSDATE au format standard ISO pour les dates contenant des numéros de semaine. Elle utilise ensuite la fonction EDIT pour extraire le composant de semaine à partir de cette date. Le paramètre WEEKFIRST est au format ISO2, qui produit le numérotage de semaine standard ISO :
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); COMPUTE WEEK/A2 = EDIT(ISODATE, '$$$$$$99$$'); BY TRANSDATE WHERE QUANTITY GT 1 AND DATE EQ 1991 END
La sortie est :
TRANSDATE TRANSTOT QUANTITY ISODATE WEEK --------- -------- -------- ------- ---- 1991/06/24 04:43 16.00 2 1991-W26-1 26 1991/06/25 01:17 2.50 2 1991-W26-2 26 1991/06/27 02:45 16.00 2 1991-W26-4 26
WebFOCUS |