Comment : Référence : |
Langages disponibles : reporting, Maintain
La fonction HMASK extrait un ou plusieurs composants de la valeur date-heure et les déplace vers un champ date-heure cible avec tous les autres composants du champ cible préservé.
HMASK(source, 'componentstring', input, length, output)
où :
est la valeur date-heure à partir de laquelle les composants spécifiques sont extraits.
est une chaîne de codes, dans n'importe quel ordre qui indique quels composants sont à extraire et à déplacer vers le champ date-heure de sortie. La table suivante montre les valeurs valides. La chaîne est considérée comme étant terminée par tout caractère absent de cette liste :
Code | Description |
---|---|
C | siècle (seuls les deux chiffres d'ordre supérieur de l'année à quatre chiffres) |
Y | année (seuls les deux chiffres d'ordre inférieur de l'année à quatre chiffres) |
YY | année à quatre chiffres. |
M | mois |
D | jour |
H | heure |
I | minutes |
S | secondes |
s | millisecondes (les trois chiffres d'ordre supérieur de la valeur à six chiffres avec microsecondes) |
u | microsecondes (les trois chiffres d'ordre inférieur de la valeur à six chiffres avec microsecondes) |
m | les six chiffres de la valeur avec microsecondes. |
n | trois chiffres d'ordre inférieur de neuf chiffres décimaux. |
est la valeur date-heure qui fournit tous les composants pour la sortie non spécifiés dans la chaîne de composant.
est la longueur de la valeur date-heure renvoyée. Voici les valeurs valables :
est le champ qui contient le résultat, ou le format entier de la valeur de sortie entre guillemets simples. Ce champ doit être au format date-heure (type de données H).
Le traitement HMASK est sujet au paramètre DTSTRICT. Déplacer le composant Jour (D) dans le composant Mois (M) peut entraîner un résultat non valide, qui n'est pas autorisé si le paramètre DTSTRICT est ON (activé). Les valeurs date-heure non valides entraînent toute fonction date-heure à renvoyer des zéros.
La source de données VIDEOTRK contient un champ date-heure nommé TRANSDATE de format HYYMDI. La requête suivante modifie toute valeur TRANSDATE avec un composant Heure supérieur à11:00 jusqu'à 8:30 du jour suivant. Dans un premier temps, la fonction HEXTR extrait la partie heure et minutes de la valeur et le compare à 11:00. Si elle est supérieure à 11:00, la fonction HADD appelle HMASK à modifier l'heure à 08:30 et ajoute un jour à la date :
DEFINE FILE VIDEOTR2 ORIG_TRANSDATE/HYYMDI = TRANSDATE; TRANSDATE = IF HEXTR(TRANSDATE, 'HI', 8, 'HHI') GT DT(12:00) THEN HADD (HMASK(DT(08:30), 'HISs', TRANSDATE, 8, 'HYYMDI'), 'DAY', 1,8, 'HYYMDI') ELSE TRANSDATE; END TABLE FILE VIDEOTR2 PRINT ORIG_TRANSDATE TRANSDATE BY LASTNAME BY FIRSTNAME WHERE ORIG_TRANSDATE NE TRANSDATE END
La sortie est :
LASTNAME FIRSTNAME ORIG_TRANSDATE TRANSDATE -------- --------- -------------- --------- BERTAL MARCIA 1999/07/29 12:19 1999/07/30 08:30 GARCIA JOANN 1998/05/08 12:48 1998/05/09 08:30 1999/11/30 12:12 1999/12/01 08:30 PARKER GLENDA 1999/01/06 12:22 1999/01/07 08:30 RATHER MICHAEL 1998/02/28 12:33 1998/03/01 08:30 WILSON KELLY 1999/06/26 12:34 1999/06/27 08:30
WebFOCUS |