Come: Riferimento: |
Lingue disponibili: reporting, Maintain
La funzione HDIFF calcola il numero di unità di componente data-ora tra due valori data-ora.
HDIFF esegue la sua sottrazione in modo diverso da DATEDIF, che sottrae i componenti data memorizzati nei campi data. Il calcolo DATEDIF ricerca anni e mesi completi. Quindi, sottraendo le seguenti due date e richiedendo il numero di mesi o anni, risulta 0:
DATE1 12/25/2014, DATE2 1/5/2015
Eseguendo lo stesso calcolo usando HDIFF su campi data-ora risulta un valore di 1 mese o 1 anno come, in questo caso, il mese o l'anno viene prima estratto da ciascun valore data-ora, quindi avviene la sottrazione.
HDIFF(end_dt, start_dt, 'component', output)
dove:
Data-ora
Il valore data-ora da cui eseguire la sottrazione, il nome di un campo data-ora che contiene il valore, o una espressione che restituisce il valore.
Data-ora
Il valore data-ora da sottrarre, il nome del campo data-ora che contiene il valore o un'espressione che restituisce il valore.
Alfanumerico
Il nome del componente da utilizzare nel calcolo, racchiuso tra virgolette singole. Se la componente è una settimana, l’impostazione del parametro WEEKFIRST è utilizzata nel calcolo".
Virgola-mobile precisione-doppia
Campo che contiene il risultato o formato del valore di emissione racchiuso tra virgolette singole. Il formato deve essere virgola-mobile precisione-doppia
HDIFF calcola il numero di giorni tra i campi TRANSDATE e ADD_MONTH e memorizza il risultato in DIFF_PAYS, che ha il formato di D12.2:
TABLE FILE VIDEOTR2
PRINT CUSTID TRANSDATE AS 'DATE-TIME' AND COMPUTE
ADD_MONTH/HYYMDS = HADD(TRANSDATE, 'MONTH', 2, 8, 'HYYMDS');
DIFF_DAYS/D12.2 = HDIFF(ADD_MONTH, TRANSDATE, 'DAY', 'D12.2');
WHERE DATE EQ 2000;
END
L'emissione è:
CUSTID DATE-TIME ADD_MONTH DIFF_DAYS ------ --------- --------- --------- 1237 2000/02/05 03:30 2000/04/05 03:30:00 60.00 1118 2000/06/26 05:45 2000/08/26 05:45:00 61.00
HDIFF calcola il numero di giorni tra ADD_MONTH e DT1:
MAINTAIN FILE DATETIME
FOR 1 NEXT ID INTO STK;
COMPUTE
NEW_DATE/HYYMDS = HADD(STK.DT1, 'MONTH', 2,10, NEW_DATE);
DIFF_DAYS/D12.2 = HDIFF(NEW_DATE,STK.DT1,'DAY', DIFF_DAYS);
TYPE "STK(1).DT1 = "STK(1).DT1;
TYPE "NEW_DATE = "NEW_DATE;
TYPE "DIFF_DAYS = "DIFF_DAYS
END
WebFOCUS |