дата sas — конвертировать Today() в формат ггггммдд
Вопрос
Как преобразовать дату 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.));
Вы хотите использовать формат ггммддн8.«Н» означает нет разделителя.
Пер http://support.sas.com/kb/24/610.html вы можете указать B для пробела, C для двоеточия, D для тире, N для отсутствия разделителя, P для точки или S для косой черты.
вот как я это сделал в макросе, но ведь должен же быть формат??!!!
%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));
это странно - ИНФОРМАТ yymmdd8.дает результат ГГГГММДД, тогда как FORMAT yymmdd8.дает результат ГГ-ММ-ДД!
Есть еще один, который тоже должен помочь
%let today=%sysfunc(today(),yymmddn8.);
%put &today.;
Всё по ссылке ниже
Вы можете увидеть все форматы даты и времени на вкладке «Справка», если ввести «дата» на вкладке «Указатель», а затем выбрать «форматы даты и времени».