Ответ 1
data _null_;
format test yymmddn8.;
test=today();
put test=;
run;
Как мне преобразовать дату SAS, такую как "30JUL2009"d
в формат YYYYMMDD
(например, 20090730)?
Итак, например:
data _null_;
format test ?????;
test=today();
put test=;
run;
Давал бы мне "test = 20090730" в журнале...
data _null_;
format test yymmddn8.;
test=today();
put test=;
run;
%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 для косой черты.
вот как я это сделал в макросе, но наверняка должен быть формат???!!!
%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));
его странно - INFORMAT yymmdd8. дает результат YYYYMMDD, тогда как FORMAT yymmdd8. дает результат YY-MM-DD!!
Есть и тот, который тоже должен сделать трюк
%let today=%sysfunc(today(),yymmddn8.);
%put &today.;
Все по ссылке ниже
Вы можете видеть все форматы даты и времени на вкладке "Справка", когда вы вводите "дату" на вкладку "Индекс", а затем "даты и время"