YM : Calculer les mois écoulés

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.


Haut de page

x
Syntaxe : Calculer le nombre de mois écoulés
YM(fromdate, todate, output)

où :

fromdate

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).

todate

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).

output

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 or 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.



Exemple : Calculer le nombre de mois écoulés

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

Information Builders