YM: Como Calcular os Meses Decorridos

Como:

Linguagens Disponíveis: Reporting, Maintain

A função YM calcula o número de meses decorridos entre duas datas. As datas devem estar no formato ano-mês. Você pode converter uma data para este formato utilizando a função EDIT ou CHGDAT.


Topo da página

x
Sintaxe: Como Calcular meses decorridos
YM(fromdate, todate, output)

onde:

fromdate

I4YM ou I6YYM

É a data inicial no formato ano-mês (por exemplo, I4YM). Se a data não for válida, a função retornará um 0 (zero).

todate

I4YM ou I6YYM

É a data final no formato ano-mês. Se a data não for válida, a função retornará um 0 (zero).

saída

Inteiro

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.

Dica: Se fromdate ou todate for um formato inteiro ano ano-mês-dia (I6YMD ou I8YYMD), divida a data por 100 para converter o formato ano-mês e configurar o resultado como um inteiro. Isto remove a parte do dia da data, que agora se encontra após o ponto decimal.



Exemplo: Como Calcular os Meses Decorridos

Os comandos COMPUTE convertem o formato ano-mês-dia em ano-mês. Em seguida, YM calcula a diferença entre os valores nos campos HIRE_DATE/100 e DAT_INC/100:

TABLE FILE EMPLOYEE
PRINT DAT_INC AS 'RAISE DATE' AND COMPUTE
HIRE_MONTH/I4YM = HIRE_DATE/100; NOPRINT AND COMPUTE
MONTH_INC/I4YM = DAT_INC/100; NOPRINT AND COMPUTE
MONTHS_HIRED/I3 = YM(HIRE_MONTH, MONTH_INC, 'I3');
BY LAST_NAME BY FIRST_NAME BY HIRE_DATE
IF MONTHS_HIRED NE 0
WHERE DEPARTMENT EQ 'MIS';
END

A saída é:

LAST_NAME     FIRST_NAME  HIRE_DATE  RAISE DATE  MONTHS_HIRED
---------     ----------  ---------  ----------  ------------
CROSS         BARBARA      81/11/02    82/04/09             5
GREENSPAN     MARY         82/04/01    82/06/11             2
JONES         DIANE        82/05/01    82/06/01             1
MCCOY         JOHN         81/07/01    82/01/01             6
SMITH         MARY         81/07/01    82/01/01             6

Information Builders