HMASK: Estrazione dei componenti data-ora e mantenimento dei componenti restanti

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.


Inizio pagina

x
Sintassi: Come spostare più componenti data-ora a un campo di destinazione data-ora
HMASK(source, 'componentstring', input, length, output)

dove:

origine

Valore data-ora da cui sono estratte le componenti specificate.

componentstring

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.

input

Valore data-ora che fornisce tutte le componenti per l’emissione che non sono specificate nella stringa delle componenti.

length

Lunghezza del valore data-ora restituito. I valori validi sono:

  • 8 indica un valore ora che include da una a tre cifre decimali (millisecondi).
  • 10 indica un valore ora che include da quattro a sei cifre decimali (microsecondi).
  • 12 indica un valore ora che include da sette a nove cifre decimali (nanosecondi).
emissione

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).



x
Riferimento: Note per l'uso per la funzione HMASK

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.



Esempio: Modifica di un campo Data-ora usando HMASK

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