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 :

Concersion de format de date


Sujet :

Débutez

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Concersion de format de date
    Bonjour,

    Je reviens vers vous avec a nouveau un problème de conversion de date.

    En entrée j'ai cette date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %LET debut = 31Dec2012;
    et en sorti je souhaite avoir ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    %let  dt_dwh='31dec2012'd;
    %let  dt_dwh_1='30nov2012'd;
    %let  dt_deb='31dec2011'd;
    > La premiere date est la meme que 31Dec2012

    > La seconde est 31Dec2012 - 1 mois

    > La Troisieme est 31Dec2012 - 1 an

    Après des recherches et des essai je bloque la dessus. Pouves - vous svp m'aider en me proposant un bout de code qui le fait ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Points : 1 063
    Points
    1 063
    Par défaut
    Bonjour,

    Voici ma façon de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    %let deb="31dec2013"d;
    /* conversion au format approprié : la même date */
    %let deb=%sysfunc(putn(&deb,ddmmyyyy.)); 
    /* la date - 1 mois */
    %let var_m = %sysfunc(intnx(month,&deb.,-1,e),ddmmyy.);
    %put &var_m. ;
    /* la date - 1 an */
    %let var_f = %sysfunc(intnx(year,&deb.,-1,e),ddmmyy.);
    %put &var_f. ;
    1 - via sysfunc et putn je convertis la date au format numérique ( par défaut , SAS considère les dates comme un certain nombre de jours écoulées depuis tel date).
    2 - via la fonction intnx je calcule des opérations sur des dates. Intnx permet de rajouter X intervalles de temps sur la date définie. Par exemple 1 mois sur la date, 1 an sur la date, 1 jour ...

    PS : dans un macro, pas de guillemets pour les paramètres intervalles de la fonction intnx.
    I always thought that the person who specialized in using just SAS PROCS should
    be known as the SAS Proctologist.

Discussions similaires

  1. Format de date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/06/2004, 17h32
  2. Détecter le format de date au démarrage
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2004, 11h04
  3. Réponses: 11
    Dernier message: 02/09/2003, 14h20
  4. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

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