Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 16h49   #1
Invité de passage
 
Rémi
Inscription : février 2011
Messages : 4
Détails du profil
Informations personnelles :
Nom : Rémi

Informations forums :
Inscription : février 2011
Messages : 4
Points : 0
Points : 0
Par défaut Nombre de mois entre deux dates

Bonjour,

Je cherche à obtenir un nombre de mois en soustrayant deux dates, mais cela ne semble pas fonctionner de la même manière qu'avec les années (fonction YRDIF ou YEAR).

J'ai une variable ageR qui doit être égale à dat1-dat2, mais cette fois en mois.
Or je n'arrive pas à adapter le code suivant:

Code :
ageR = YEAR(DATEPART(dat1)) - YEAR(DATEPART(dat2)) ;
Un grand merci à vous par avance.
Slixounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 17h02   #2
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 961
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 961
Points : 4 672
Points : 4 672
Bonjour,
En faisant :
Code :
ageR = (DATEPART(dat1) - DATEPART(date2))/30;
__________________
Les balises code
FAQ SAS
Rubrique SAS

Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 17h28   #3
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Mais la fonction INTCK ne vous motive pas plus que de faire cela à la mimine ?
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 17h30   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 701
Points : 1 701
Citation:
Envoyé par Slixounet Voir le message
J'aurais une nouvelle demande si cela ne vous embête pas trop...

Je cherche à obtenir un nombre de mois en soustrayant deux dates, mais cela ne semble pas fonctionner de la même manière qu'avec les années.

J'ai toujours mon ageR qui doit être égale à dat1-dat2, mais cette fois en mois.

.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 
DATA _null_;
 
a= input ("10jan2009 12:00", datetime16.);
b= input ("20feb2011 14:20", datetime16.);
 
c=(month(datepart(b))-month(datepart(a))) + (year(datepart(b))-year(datepart(a)))*12;
 
 
put "resultat"  c= ;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 17h35   #5
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 701
Points : 1 701
Citation:
Envoyé par datametric Voir le message
Mais la fonction INTCK ne vous motive pas plus
que de faire cela à la mimine ?
oui
Code :
1
2
3
4
5
6
7
8
9
10
11
 
DATA _null_;
 
a= input ("10jan2009 12:00", datetime16.);
b= input ("20feb2011 14:20", datetime16.);
 
 
d= intck ('month',datepart(a),datepart(b));
 
put "resultat"  d= ;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 07h07   #6
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Un petit bémol sur INTCK, puisqu'on va compter les débuts de mois. Donc entre hier (28/2) et aujourd'hui (1/3) il s'est écoulé un mois pour INTCK.
Perso, si j'avais dormi un mois cette nuit, je serais plus en forme.

Moi la solution soustrayant les dates et divisant par 30 me semble une bonne piste si on veut être précis. On peut même diviser par 30.4375 (365.25 jours divisés par 12 mois).
En attendant que SAS produise la fonction MONTHDIF ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 10h03   #7
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
Ici d1 prend la bonne valeur.

Code :
1
2
3
4
5
6
7
8
9
10
11
DATA _null_;
 
a= input ("28feb2011 12:00", datetime16.);
b= input ("1mar2011 14:20", datetime16.);
 
 
d1= intck ('month',datepart(a),datepart(b),'CONTINUOUS'  );
d2= intck ('month',datepart(a),datepart(b),'DISCRETE'  );
 
put "resultat "  d1= / d2=   ;
run;
resultat d1=0
d2=1
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 10h31   #8
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Salut Stéphane,
J'ai testé ton bout de code, voici ce que j'ai dans la log:

Code :
1
2
3
4
5
6
7
8
9
 
 
d1= intck ('month',datepart(a),datepart(b),'CONTINUOUS'  );
         -----
 
d2= intck ('month',datepart(a),datepart(b),'DISCRETE'  );
         -----
 
ERREUR 72-185: L'appel de la fonction INTCK contient trop d'arguments.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 11h06   #9
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
C'est en 9.2 que cela fonctionne.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 11h13   #10
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Citation:
Envoyé par datametric Voir le message
C'est en 9.2 que cela fonctionne.
Ok, je m'en doutais après avoir posté
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 16h40   #11
Membre Expert
 
Inscription : mars 2005
Messages : 1 010
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 010
Points : 1 258
Points : 1 258
Envoyer un message via Yahoo à bahraoui
http://support.sas.com/kb/24/808.html
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h34.


 
 
 
 
Partenaires

Hébergement Web