HDIFF: Como Localizar o Número de Unidades entre Dois Valores Data-Hora

Como:

Referência:

Linguagens Disponíveis: Reporting, Maintain

A função HDIFF calcula o número de unidades de componentes de data ou hora entre dois valores data-hora.


Topo da página

x
Referência: Observações sobre Uso para HDIFF

HDIFF efetua sua subtração de forma diferente do DATEDIF, que subtrai os componentes de data armazenados em campos de data. O cáculo DATEDIF procura por anos e meses inteiros. Portanto, subtrair as duas datas a seguir e solicitar o número de meses ou anos resulta em 0:

DATE1 12/25/2014, DATE2 1/5/2015   

Desempenhar o mesmo cálculo utilizando HDIFF em campos data-hora resulta em um valor de 1 mês ou 1 ano já que, neste caso, o mês ou ano é o primeiro a ser extraído de cada valor data-hora e, em seguida, a subtração ocorre.


Topo da página

x
Sintaxe: Como Localizar o Número de Unidades entre Dois Valores Data-Hora
HDIFF(end_dt, start_dt, 'component', output)

onde:

end_dt

Data-hora

É o valor data-hora da qual se deve subtrair, o nome de um campo data-hora que contém o valor ou uma expressão que resulta no valor.

start_dt

Data-hora

É o valor data-hora da qual se deve subtrair, o nome de um campo data-hora que contém o valor ou uma expressão que resulta no valor.

componente

Alfanumérico

É o nome do componente a ser utilizado no cálculo entre aspas simples. Se o componente for uma semana, a configuração do parâmetro WEEKFIRST será usada no cálculo".

saída

Dupla precisão com ponto flutuante

É o campo que contém o resultado ou o formato do valor de saída posto entre aspas simples. O formato deve ser de dupla precisão com ponto flutuante.



Exemplo: Como Encontrar o número de Dias entre Dois Campos Data-Hora (Reporting)

HDIFF calcula o número de dias entre os campos TRANSDATE e ADD_MONTH e armazena o resultado em DIFF_PAYS, que possui o 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

A saída é:

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


Exemplo: Como Encontrar o número de Dias entre Dois Campos Data-Hora (Maintain)

HDIFF calcula o número de dias entre 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

Information Builders