Come: Riferimento: |
Lingue disponibili: reporting, Maintain
La funzione HMASK estrae uno o più componenti da un valore data-ora e li sposta ad un campo data-ora di destinazione con tutti gli altri componenti del campo di destinazione mantenuto.
HMASK(source, 'componentstring', input, length, output)
dove:
Valore data-ora da cui sono estratte le componenti specificate.
Stringa di codici, in qualsiasi ordine, che indica quali componenti devono essere estratte e spostate al campo data-ora di emissione. La seguente tabella mostra i valori validi. La stringa viene terminata da qualsiasi carattere non nella lista:
Codice | Descrizione |
---|---|
C | secolo (solo le prime due cifre dell'anno a quattro cifre) |
Y | anno (solo le ultime due cifre dell'anno a quattro cifre) |
YY | Anno a quattro cifre. |
M | mese |
D | Giorno |
H | ora |
I | minuti |
S | secondi |
s | millisecondi (solo le prime tre cifre del valore in microsecondi da sei cifre) |
u | microsecondi (solo le ultime tre cifre del valore in microsecondi da sei cifre) |
m | Tutte le sei cifre del valore in microsecondi. |
n | Tre cifre di ordine inferiore di nove cifre decimali. |
Valore data-ora che fornisce tutte le componenti per l’emissione che non sono specificate nella stringa delle componenti.
Lunghezza del valore data-ora restituito. I valori validi sono:
Il campo che contiene il risultato, o il formato del valore di emissione racchiuso tra virgolette singole. Questo campo deve essere nel formato data- ora (tipo di dati H).
L'elaborazione di HAMASK è soggetto all'impostazione DTSTRICT. Spostando il componente giorno (D) senza il componenti mese (M) potrebbe portare un risultato invalido, non consentito se l'impostazione DTSTRICT è ON. I valori data-ora invalidi portano qualsiasi funzione data-ora a restituire zeri.
L’origine dati VIDEOTRK ha un campo data-ora denominato TRANSDATE di formato HYYMDI. La seguente richiesta modifica qualsiasi valore TRANSDATE con un componente ora maggiore di 11:00 a 8:30 nel giorno seguente. Prima, la funzione HEXTR estrae la porzione ora e minuti del valore e la paragona a 11:00. Se maggiore di 11:00, la funzione HADD chiamata HMASK per modificare l'ora a 8:30 e aggiunge un giorno alla data:
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
L'emissione è
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 |