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 21/12/2011, 11h26   #1
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
Par défaut Additionner des dates

Bonjour,

J'ai une variable nommée DATEV=JJ/MM/AAAA (ex:24/01/2012).
Je voudrais créer une nouvelle variable DATER = DATEV + 14 jours , qui doit être sous la forme DATER=JJ/MM/AAAA , elle aussi.

Quelqu'un connaitrait la procédure qui me permettrait d'additionner un nombre de jour à une date, pour avoir une autre date en sortie ?

merci de votre aide,
Coriolie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h36   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Bonjour,

Les dates sous SAS sont de type numerique. Il suffit tout betement d'additioner le nombre de jours voulu a ta variable initiale, dans une etape data.

Code :
1
2
3
4
5
DATA NOUVELLETABLE;
 SET TABORIGIN;
 
DATER = DATEV + 14;
run;
Tu pourras trouver des posts traitant ce theme en effectuant des recherches sur le forum.

Bon courage et reviens vers nous si tu ne t'en sors pas.

Manoutz
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h41   #3
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
merci de votre réponse rapide,

en fait mon problème est que ma variable DATEV est sous format caractere et pas numérique. il faudrait que je trouve une fonction qui me transforme cette variable en nombre de jours (et donc en numérique), pour pouvoir y ajouter mes 14 jours et ensuite le retransformer en format DATE.

suis-je plus clair

je suis aussi en train de regarder dans le forum les topics sur la question, mais je ne trouve pas mon bonheur pour le moment.

merci encore,
Coriolie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h55   #4
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Je m'en doutais

le principe est le meme sauf qu'il faut creer une nouvelle variable basee sur DATEV, mais de TYPE numerique, sur lequel tu peux appliquer un FORMAT (sinon tu n'auras qu'un nombre - pas de date)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DATA TABORIGIN;
 input DATEV $10.;
 cards;
 5
123335
1225
1225
;
 
DATA NOUVELLETABLE;
 SET TABORIGIN;
 
 format DATER DATEV_NUM date9.;
 
 DATEV_NUM=input(DATEV, best12.);
 
DATER = DATEV_NUM + 14;
run;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h09   #5
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
merci encore pour ta réponse,

en fait mon autre problème était que ma variable de date n'était pas au format DATE, mais dans un format caractere.
je m'en suis sortie avec ce bout de code :

Code :
1
2
3
4
5
6
7
8
9
10
DATA test;
SET ech.echsjtot(keep=datevisite);
date2=input(DATEVISITE,DDMMYY10.);
date3=date2+14;
run;
 
DATA test2;
SET test;
	format date3 DDMMYY10.;
Run;
et ça marche nikel .

Merci encore pour le temps que tu as pris à me réponde
Coriolie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h37   #6
Invité
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
t'aurai pu gérer tout dans la même DataStep:

Code :
1
2
3
4
5
6
 
DATA test;
format date2 DDMMYY10.;
SET ech.echsjtot(keep=datevisite);
date2=input(DATEVISITE,DDMMYY10.) +14;
run;
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h36.


 
 
 
 
Partenaires

Hébergement Web