дата sas — конвертировать Today() в формат ггггммдд

StackOverflow https://stackoverflow.com/questions/1207110

  •  05-07-2019
  •  | 
  •  

Вопрос

Как преобразовать дату 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;

ГГММДДxw.документация

Другие советы

%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.;

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top