Как преобразовать дату SAS, например "30JUL2009"d, в формат YYYYMMDD (например, 20090730)?
"30JUL2009"d
YYYYMMDD
Так, например:
data _null_; format test ?????; test=today(); put test=; run;
дал бы мне "test = 20090730" в журнале ...
data _null_; format test yymmddn8.; test=today(); put test=; run;
YYMMDDxw. документация
%let expectdate1=%sysfunc(putn(%eval(%sysfunc(today())-1),yymmddn8.));
Вы хотите использовать формат yymmddn8. 'N' означает без разделителя .
В http://support.sas.com/kb/24/610.html вы можете указать B для пробела, C для двоеточия, D для тире, N для разделителя, P для периода или S для косой черты.
Есть еще один, который тоже должен сделать свое дело
%let today=%sysfunc(today(),yymmddn8.); %put &today.;
Все по ссылке ниже
https://communities.sas.com/thread/60111
вот как я это сделал в макросе, но наверняка должен быть формат ?? !!!
%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));
странно - ИНФОРМАТ yymmdd8. дает результат YYYYMMDD, тогда как FORMAT yymmdd8. дает результат YY-MM-DD !!
Все форматы даты и времени можно увидеть на вкладке «Справка», когда вы вводите «дата» на вкладку «Индекс» и затем выбираете «форматы даты и времени»