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.
YM(fromdate, todate, output)
onde:
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).
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).
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.
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 |