IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débutez Discussion :

Convertir et soustraire des dates


Sujet :

Débutez

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut Convertir et soustraire des dates
    Bonjour,

    Je suis un débutant en SAS et les dates me posent des problèmes.

    J'ai une variable qui s'appelle Q88A et qui contient des valeurs comme 200706, 200408, etc.

    Je suis parvenu a créer une nouvelle variable appellée "annee" grâce au code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Data Modu_2009B;
    set wsasuser.eft_2009b (keep= cw_all sex age Q88A Q100 Q102 Q79 Q98);
    where 14<age<35 and Q79=3 and 0<Q98<888888;
    annee = Q98;
    informat annee yymmn6.;
    run;
     
    data modu_2009BB;
    set modu_2009B (keep= cw_all sex age Q88A Q98 Q79 annee);
    where 14<age<35 and Q79=3 and 0<Q98<888888;
    numdate=annee;
    chardate=put(numdate,z6.);
    sasdate=input(chardate, yymmn6.);
    run;
    Ensuite j'aimerais soustraire ces dates à 2009. ex: 2009-200706, ce qui me donnerai 1 an et 6 mois.

    Quelqu'un pourrait-il m'aider?

    Jean-François

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    Comme tu l'as vu, les dates sont des numériques : le nombre de jours depuis 1/1/1960.
    il te reste simplement à créer une date en 2009 pour pouvoir soustraire les deux dates. Je te propose de créer dans ton étape DATA un champ de valeur constante : ref = MDY ( 12,31,2009) ;

    tu pourras donc soustraire : diff = ref - sasdate ;

  3. #3
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Bonjour,
    oui, le plus simple c'est à mon avis d'extraire le mois et l'année pour créer une date SAS avec mdy. Ensuite tu peux faire des opérations sur ces dates SAS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    DATA temp;
       input Q98 $;
       cards;
    200706
    200708
    200408
     
    ;
     
    Data temp;
    	set temp;
     
    	length annee $ 4;
    	length mois $ 2;
     
    	annee=substr(Q98,1,4);
    	mois=substr(Q98,5,2);
     
    	format MyDate ddmmyy8.;
    	format MyRef ddmmyy8.;
     
    	MyDate=mdy(mois,1,annee);
     
    	MyRef=mdy(1,1,2009);
     
    	MyDelta=MyRef-MyDate;
    run;
    MyDelta donne le nombre de jours entre MyRef et MyDate.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut
    Bonjour,

    Vous avez répondu à ma question et me voici en train de jongler avec mes dates.

    Merci beaucoup!

    @ la prochaine!

    Jean-François

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. soustraire des dates
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/10/2007, 06h56
  2. Soustraire des dates.
    Par skorpio dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/06/2007, 19h54
  3. Soustraire des dates
    Par skorpio dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 14/06/2007, 15h09
  4. Soustraire une date avec des jours et jours ouvrés
    Par celiaaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/05/2007, 22h37
  5. soustraire des dates et renvoyer le resultat
    Par tyrann dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 18/11/2005, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo