Sas date - конвертировать сегодня() в формат yyyymmdd

Как мне преобразовать дату SAS, такую ​​как "30JUL2009"d в формат YYYYMMDD (например, 20090730)?

Итак, например:

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

Давал бы мне "test = 20090730" в журнале...

Ответы

Ответ 2

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

Вы хотите использовать формат yymmddn8. "N" означает отсутствие разделителя.

Per http://support.sas.com/kb/24/610.html вы можете указать B для пробела, C для двоеточия, D для тире, N для без разделителя, P для периода, или S для косой черты.

Ответ 3

вот как я это сделал в макросе, но наверняка должен быть формат???!!!

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

его странно - INFORMAT yymmdd8. дает результат YYYYMMDD, тогда как FORMAT yymmdd8. дает результат YY-MM-DD!!

Ответ 4

Есть и тот, который тоже должен сделать трюк

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

Все по ссылке ниже

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

Ответ 5

Вы можете видеть все форматы даты и времени на вкладке "Справка", когда вы вводите "дату" на вкладку "Индекс", а затем "даты и время"