HDIFF: Ricerca del numero di unità tra due valori data-ora

Come:

Riferimento:

Lingue disponibili: reporting, Maintain

La funzione HDIFF calcola il numero di unità di componente data-ora tra due valori data-ora.


Inizio pagina

x
Riferimento: Note per l'uso per HDIFF

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.


Inizio pagina

x
Sintassi: Come ricercare il numero di unità tra due valori data-ora
HDIFF(end_dt, start_dt, 'component', output)

dove:

end_dt

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.

start_dt

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.

componente

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

emissione

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



Esempio: Ricerca del numero di giorni tra due campi data-ora (Reporting)

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


Esempio: Ricerca del numero di giorni tra due campi data-ora (Maintain)

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