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

SAS Discussion :

Fonction mdy de sas


Sujet :

SAS

  1. #1
    Membre à l'essai
    Fonction mdy de sas
    Bonjour,
    J'ai un problème dans la fonction mdy pour avoir une date.
    En fait, je souhaite utiliser la partie "jour" d'une première date et les parties "mois" et "année" d'une deuxième date pour former une nouvelle date "date_cible".
    Mais j'ai toujours des erreurs avec la fonction mdy.
    date1 et date2 sont de type numérique et de format date9.
    TERM est de numérique.
    J'ai joint un fichier excel en exemple.
    Besoin de votre aide svp.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data test_mdy;
    	set test_mdy;
    	format date_cible date9.;
    		jour = DAY(date1);
    		mois = MONTH(date2+TERM);
    		annee = YEAR(date2+TERM);
    		date_cible = MDY(mois,jour,annee); 
    run;

  2. #2
    Membre éprouvé
    Bonjour,
    Que représente réellement TERM?
    Merci
    Cordialement
    Certification des Talents de la programmation In Memory Statistics sur HADOOP:
    http://talents-imstat.groupe-avisia.fr/certifications/session-decembre-2015-niveau-avance?uid=162

  3. #3
    Membre à l'essai
    Bonjour,
    TERM désigne le nombre de mois. C'est un entier. On l'ajoute à une date et on récupère le mois et l'année.
    La variable "jour" est associée à ces deux variables récupérées (mois et annee) pour former une nouvelle date dans la fonction mdy.
    C'est là où j'ai une erreur dans la fonction mdy.
    Merci pour l'aide

  4. #4
    Membre à l'essai
    Bonjour,
    J'ai finalement utilisé la fonction intnx pour remplacer le "jour" de "date2+TERM" par le "jour" de date1.
    Merci m.Brahim et merci à tous
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data test_mdy;
    	set test_mdy;
    	format date_cible date9.;
    		jour = DAY(date1);
    		date2_TERM = date2+TERM;
    		jour_date2_TERM  = DAY(date2_TERM);
    		date2_TERM_Tempo = intnx("day",date2_TERM,-jour_date2_TERM);
    		date_cible = intnx("day",date2_TERM_Tempo,jour);
    run;