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

SAS Base Discussion :

Comment faire comprendre à SAS que 2016 est une année ? (format E8601DA10. )


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comment faire comprendre à SAS que 2016 est une année ? (format E8601DA10. )
    Bonjour à tous !

    J'ai un problème sur les dates en SAS actuellement. Plus précisément, j'ai une date en caractère qui est la suivante : "UK-UK-2016" et j'aimerai l'avoir en tant que "2016" dans une variable date au format E8601DA10.
    Je récupère la valeur "2016" tout en la passant en numérique. Jusqu'ici tout va bien .

    Par contre, et là commence mon souci, je souhaiterai donc rajouter cette année dans une variable qui a le format E8601DA10. Or, je n'arrive pas à faire comprendre à SAS qu'il s'agit d'une année ! Si je mets la variable numérique 2016 telle quelle, SAS me donne une date en 1965 ce qui doit correspondre à 2016 jours depuis le 01 janvier 1960. Ce qui est tout à fait logique au vu de la manière dont SAS gère les dates.

    Voilà, si une ou des personnes avaient des réponses pour m'aider, ça serait top !!

    Merci à vous

  2. #2
    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
    Bonjour,
    Si vous avez réussi à récupéré la valeur "2016" dans une variable Annee, la nouvelle date sera définie de la manière suivante :
    Nvl_date=mdy(1, 1, annee). SAS peut maintenant lire la nouvelle date avec le format E8601DA10.

    Cdt Ward

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour Ward et merci la réponse.

    J'ai, en effet, regardé cette fonction et si je mets "Nvl_date=mdy(1, 1, 2016)" alors j'aurai "2016-01-01". Alors que je souhaiterai avoir seulement "2016".

  4. #4
    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
    Vous pouvez pas afficher l'année avec le format en question.

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    En effet et c'est bien dommage

    Merci pour ces réponses !

  6. #6
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2012
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 60
    Points : 49
    Points
    49
    Par défaut Jouons avec les dates
    Citation Envoyé par Bruno1982 Voir le message
    Bonjour à tous !

    J'ai un problème sur les dates en SAS actuellement. Plus précisément, j'ai une date en caractère qui est la suivante : "UK-UK-2016" et j'aimerai l'avoir en tant que "2016" dans une variable date au format E8601DA10.
    Je récupère la valeur "2016" tout en la passant en numérique. Jusqu'ici tout va bien .

    Par contre, et là commence mon souci, je souhaiterai donc rajouter cette année dans une variable qui a le format E8601DA10. Or, je n'arrive pas à faire comprendre à SAS qu'il s'agit d'une année ! Si je mets la variable numérique 2016 telle quelle, SAS me donne une date en 1965 ce qui doit correspondre à 2016 jours depuis le 01 janvier 1960. Ce qui est tout à fait logique au vu de la manière dont SAS gère les dates.

    Voilà, si une ou des personnes avaient des réponses pour m'aider, ça serait top !!

    Merci à vous

    En partant d'une date au format "01JUN2017:00:00:00"
    1) elle peut se transformer de la sorte : 01/06/2017 en créant une colonne calculée
    input(put(datepart(t1.DATDELHIS),ddmmyyw10.) ,10.) + format de la colonne = DDMMYY10. (ne pas oublier le point)
    2) Pour obtenir 2017
    input(put(datepart(t1.DATDELHIS),yyyyw4.) ,4.) + format de la colonne = YEAR4. (ne pas oublier le point)
    3) Pour obtenir 2017 au format numérique
    year(input(put(datepart(t1.DATDELHIS),4.),4.)) pas de format à ajouter
    4) Pour obtenir 2017 en Alpha numérique
    put((year(input(put(datepart(t1.DATDELHIS),4.),4.))),4.) pas de format à ajouter

    Bonne réception

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/05/2016, 10h04
  2. Réponses: 4
    Dernier message: 29/09/2014, 20h26
  3. Réponses: 4
    Dernier message: 26/03/2014, 11h01
  4. [MySQL] Comment faire comprendre à un ORDER BY que -7 c'est plus petit que -2
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/06/2010, 12h50
  5. Réponses: 1
    Dernier message: 10/10/2008, 17h23

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