web-dev-qa-db-fra.com

sas date - converti aujourd'hui () au format aaaammjj

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

Donc par exemple:

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

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

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

AAMMJJXw. Documentation

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

Vous voulez 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 point, D pour un tiret, N pour aucun séparateur, P pour un point ou S pour un barre .

13
Chris L Hamilton

Il y a celui-là 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

2
Andy K

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 !!

2
Allan Bowe

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

0
andrey_sz