J'ai un jeu de données avec une variable, date de début, qui prend beaucoup de valeurs différentes en utilisant un format de caractères.Mise en forme de date SAS
J'ai divisé l'ensemble de données en utilisant les valeurs de la colonne date de début, parce que je veux transformer la variable de date en deux nouvelles colonnes avec deux valeurs de date différents:
if length(Startvalue) = 6 then output a6;
else if length(Startvalue) = 8 then output a8 ;
else if length(Startvalue) = 1 then output a1;
else output a_other;
Une valeur est écrite comme celui-ci : 090209 (DDMMYY)
Je veux mettre en forme la variable dans une date9. format et un DDMMYYD10. format comme ceci:
FORMAT Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;
je l'ai eu à travailler avec cette approche dans une étape de données:
FORMAT Startdato2 date9.;
format startdato3 DDMMYYD10.;
Startdato2 = INPUT(PUT(Startdato,6.),DDMMYY6.);
Startdato3 = INPUT(PUT(Startdato,6.),DDMMYY6.);
Une autre valeur est écrite comme ceci: 15-08-17 (JJ-MM-AA) Je veux aussi les deux formats sur cette valeur, comme celui-ci:
FORMAT Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;
Mais ici, je ne peux pas utiliser une copie de mon expression en haut:
FORMAT Startvalue2 date9.;
format Startvalue3 DDMMYYD10.;
Startvalue2 = INPUT(PUT(Startvalue,8.),DDMMYYDw.);
Startvalue3= INPUT(PUT(Startvalue,8.),DDMMYYDw.);
Savez-vous pourquoi? Et comment je peux obtenir la valeur transformée en une date9. format et un format DDMMYYD10?
Amitiés
Maria
Merci pour la réponse. Si j'utilise cette méthode sur la valeur 21-09-17 j'obtiens cette sortie: 17SEP2021 \t 17-09-2021 Ce n'est pas ce que je veux. Il doit être: 21SEP2017 et 21-09-2017 – user1626092
De l'anydtdte. documentation: "Il est possible que les données d'entrée telles que 01-02-03 ou 01-02 soient ambiguës en ce qui concerne le mois, le jour et l'année, dans ce cas, l'option du système DATESTYLE indique l'ordre du mois, du jour et année. " J'ai mis à jour le code pour refléter cela. –
Yay, ça marche! Merci beaucoup - pas sûr que je comprends le code ajouté, mais j'accepte - et je suis heureux :) – user1626092