дата sas - конвертировать today () в формат ггггммдд - PullRequest
15 голосов
/ 30 июля 2009

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

Так, например:

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

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

Ответы [ 5 ]

23 голосов
/ 30 июля 2009
data _null_;
    format test yymmddn8.;
    test=today();
    put test=;
run;

YYMMDDxw. документация

13 голосов
/ 07 августа 2009
%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 для косой черты.

2 голосов
/ 05 августа 2014

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

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

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

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

2 голосов
/ 30 июля 2009

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

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

странно - ИНФОРМАТ yymmdd8. дает результат YYYYMMDD, тогда как FORMAT yymmdd8. дает результат YY-MM-DD !!

0 голосов
/ 11 ноября 2013

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

...