Как я могу назначить минус 1 / вчера с сегодняшнего дня SAS - PullRequest
0 голосов
/ 18 июня 2019

У меня сбитая с толку дата в SAS.

Например,

%let fdate = %sysfunc(today(),EURDFDE9.);

показывает 18JUN2019

Как насчет того, чтобы я хотел показать вчера как 17JUN2019

Я пытаюсь -1, но это не сработало, как я могу кодировать?

1 Ответ

1 голос
/ 18 июня 2019

Обратите внимание, что результатом %sysfunc(today(),EURDFDE9.) является строка 18JUN2019.Вы не можете вычесть 1 из этого.Однако today () - это числовое значение, поэтому, если вы сохраните это значение, вы можете впоследствии вычесть 1.Обратите внимание, что макропеременные хранятся в виде строки, поэтому даже если fdate является числовой строкой, вам нужно% eval для выполнения вычитания.

%let fdate=%sysfunc(today());
%put %sysfunc(putn(&fdate,EURDFDE9.));
%let ydate=%eval(&fdate-1);
%put %sysfunc(putn(&ydate,EURDFDE9.));
...