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 :

Determiner les mois entre deux dates


Sujet :

Débutez

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Points : 83
    Points
    83
    Par défaut Determiner les mois entre deux dates
    Bonjour à tous,

    J ai deux date

    date_debut 01/08/2014
    date_fin 28/04/2015

    y a t-il une fonction en SAS-SQL qui genere les mois entres ces date:

    expl pour ce cas :

    date_debut 01/08/2014
    date_fin 28/04/2015

    resultats =
    08-09-10-11-12-01-02-03-04

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Bonjour,

    Avec les fonctions INTCK et INTNX de 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
    data test;
    format datedeb datefin ddmmyy8.;
    input datedeb :date9. datefin :date9.;
    cards;
    01AUG2014 28APR15
    ;
    run;
     
    data test2 (drop=i datedeb datefin);
    set test;
    mois = intnx('month',datedeb,0,'B');
    output;
    do i = 1 to intck('month',datedeb,datefin,'C');
    	mois=intnx('month',datedeb,i);
    	output;
    end;
    format mois month.;
    run;

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Points : 83
    Points
    83
    Par défaut
    Merci pour la reponse.
    Il ya juste un point a régler c'est que je dois avoir le results sur la meme ligne.

    date_deput ,date_fin,08-09-10-11-12-01-02-03-04

    le resultat obtenu par votre code c'est verticale

    mon code doit ecrire ça par ligne pour plusieurs date, une date par ligne.

    Merci!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Dans ce cas, il faut juste adapter un peu le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data test2 (drop=i);
    set test;
    length mois $50;
    mois = put(month(intnx('month',datedeb,0,'B')),z2.);
    do i = 1 to intck('month',datedeb,datefin,'C');
    	mois=catt(mois,'-',put(month(intnx('month',datedeb,i)),z2.));
    end;
    run;

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Citation Envoyé par benvanbelgie Voir le message
    date_deput ,date_fin,08-09-10-11-12-01-02-03-04
    Merci!
    Bonjour,
    Ou bien Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    data Test (keep=Resultat) ;
    datedeb='01aug2014'd ;  
    datefin='28apr2015'd ;		 
    length cat_mois $30. Resultat $60.;
    i=0	 ;
    do until(mois=month(datefin));
    	mois = month(intnx('month', datedeb, i)) ; 	
    	i+1 ;
    	cat_mois=catx( '-', cat_mois, put(mois, z2.) ) ;
    	resultat=cats(put(datedeb, ddmmyy8.), ',', put(datefin, ddmmyy8.), ',', cat_mois) ;
    end;
    run ;
    Ward

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Points : 83
    Points
    83
    Par défaut
    Merci!

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

Discussions similaires

  1. Comparaison entre les mois de deux dates
    Par meryam123 dans le forum JPA
    Réponses: 8
    Dernier message: 05/09/2011, 08h25
  2. Comment compter les jours par mois entre deux dates
    Par Doo89 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/01/2008, 21h21
  3. Nombre de mois entre deux dates
    Par boulaxx dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/09/2006, 15h22
  4. [Dates] Les mois entre deux dates
    Par kagura dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2006, 11h38
  5. comment obtenir l’intervalle de mois entre deux date
    Par looc 6699 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/02/2005, 11h08

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