Question

Comment convertir une date SAS telle que "30JUL2009" d au format YYYYMMDD (par exemple 20090730)?

Ainsi, par exemple:

data _null_;
  format test ?????;
  test=today();
  put test=;
run;

Me donnerait " test = 20090730 " dans le journal ...

Était-ce utile?

La solution

data _null_;
    format test yymmddn8.;
    test=today();
    put test=;
run;

YYMMDDxx. documentation

Autres conseils

%let expectdate1=%sysfunc(putn(%eval(%sysfunc(today())-1),yymmddn8.));

Vous souhaitez utiliser le format yymmddn8. Le 'n' signifie pas de séparateur .

Per http://support.sas.com/kb/24/610.html vous pouvez spécifier B pour un blanc, C pour un signe deux-points, D pour un tiret, N pour aucun séparateur, P pour un point ou S pour une barre oblique.

voici comment je l'ai fait en macro, mais il doit sûrement y avoir un format ?? !!!

%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));

c'est bizarre - l'INFORMAT yymmdd8. donne le résultat AAAAMMJJ, alors que le FORMAT yymmdd8. donne un résultat AA-MM-JJ !!

Il y en a un qui devrait faire l'affaire aussi

%let today=%sysfunc(today(),yymmddn8.);
%put &today.;

Tout sur le lien ci-dessous

https://communities.sas.com/thread/60111

Vous pouvez voir tous les formats de date et heure dans l'onglet Aide lorsque vous entrez "date" dans l'onglet Index, puis sélectionnez "Formats de date et heure"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top