Comment : |
Langages disponibles : reporting, Maintain
La fonction YM calcule le nombre de mois écoulés entre deux dates. Les dates doivent être au format année-mois. Vous pouvez convertir une date à ce format en utilisant la fonction CHGDAT ou EDIT.
YM(fromdate, todate, output)
où :
I4YM ou I6YYM
est la date de début dans un format année-mois (par exemple, I4YM). Si la date n'est pas valide, la fonction renvoie la valeur 0).
I4YM ou I6YYM
est la date de fin dans un format année-mois. Si la date n'est pas valide, la fonction renvoie la valeur 0).
Entier
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.
Remarque : si fromdate ou todate est au format entier année-mois-jour (I6YMD ou I8YYMD), divisez-le par 100 pour le convertir au format année-mois et pour définir les résultats sur un nombre entier. Cela supprime l'élément de jour d'une date, qui s'affiche maintenant après la virgule.
Les commandes COMPUTE convertissent les dates au format année-mois-jour en format année-mois, puis YM calcule la différence entre les valeurs des champs HIRE_DATE/100 et 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
La sortie est :
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
WebFOCUS |