Bonjour, je suis débutante en sas et j'aimerais savoir svp comment on fait pour calculer la différence entre deux date sas!!
par exemple j'aimerais avoir l'ancienneté actuelle en année à partir de la date d'adhésion comment ferai-je??
et merci
Bonjour, je suis débutante en sas et j'aimerais savoir svp comment on fait pour calculer la différence entre deux date sas!!
par exemple j'aimerais avoir l'ancienneté actuelle en année à partir de la date d'adhésion comment ferai-je??
et merci
Bonjour,
Une date SAS c'est un nombre (plus exactement le nombre de jours depuis le 1er janvier 1960), donc pour avoir la différence entre 2 dates généralement une soustraction suffit, et donne le nombre de jours d'écarts.
Sinon il faut utiliser la fonction INTCK, qui permet de préciser si on cherche une différence de mois, de semaine, de jours, d'années, d'heure...
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 data _null_ ; DateAdhesion="07may2003"d ; Ecart=intck('year', DateAdhesion,today() ); put Ecart=; run ;
merci beaucoup pour votre réponse, j'ai essayé de faire la différence pour obtenir le nombre de jours mais des fois je trouve des nombres négatifs!!!
Bonjour.
Si tu trouves des dates négatives dans tes différences, c'est qu'il y a un souci dans tes dates (des dates d'adhésion dans le futur ?).
Attention avec INTCK, c'est une fonction qui va compter par défaut le nombre de 1ers jours de la période : si tu indiques que tu cherches un nombre d'années (1er argument="YEAR"), SAS va compter le nombre de 1er janvier entre tes deux dates. Donc par exemple, entre le 30/12/2013 et le 02/01/2014, il y 1 an avec cette méthode de calcul.
Il y a aussi une fonction YRDIF (year difference) qui calcule un nombre d'années entre 2 dates sous forme de nombre avec des décimales. Ensuite tu peux arrondir avec des fonctions comme ROUND, FLOOR ou CEIL. Le 3e argument ACT/ACT est un peu curieux, mais obligatoire.Bon courage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part anciennete= YRDIF(DateAdhesion,today(), "ACT/ACT" );
Olivier
merci beaucoup beaucoup ça à marcher
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager