Cómo: Referencia: |
Idiomas disponibles: informes, Maintain
La función HDIFF calcula el número de unidades del componente de fecha u hora entre dos valores de fecha-hora.
HDIFF realiza la sustracción de forma diferente a DATEDIF, que resta los componentes de fecha almacenados en campos de fecha. El cálculo de DATEDIF utiliza años o meses completos. Por tanto, al sustraerse las dos siguientes fechas y solicitar el número de meses o años, el resultado es de 0:
DATE1 12/25/2014, DATE2 1/5/2015
Si se realiza el mismo cálculo utilizando HDIFF en campos de fecha-hora, el resultado es un valor de 1 mes o 1 año, ya que, en este caso, primero se efectúa la extracción del mes o año de cada valor de fecha-hora y, después, la sustracción.
HDIFF(end_dt, start_dt, 'component', output)
donde:
Fecha-hora
Es el valor de fecha-hora del que se va restar, el nombre del campo fecha-hora que contiene el valor o una expresión que devuelve el valor.
Fecha-hora
Es el valor de fecha-hora que se va restar, el nombre del campo fecha-hora que contiene el valor o una expresión que devuelve el valor.
Alfanumérico
Es el nombre, entre comillas simples, del componente que se va a usar en el cálculo. Si el componente es una semana, el cálculo emplea la configuración de parámetro WEEKFIRST.
Punto flotante de doble precisión
Es el campo que contiene el resultado o el formato del valor de salida, entre comillas simples. El formato debe ser de punto flotante de doble precisión.
HDIFF calcula el número de días entre los campos TRANSDATE Y ADD_MONTH y guarda el resultado en DIFF_PAYS, con formato 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
La salida es:
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 calcula el número de días entre ADD_MONTH y 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 |