Обратите внимание, что результатом %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.));