@pangea17 wrote:
I am trying to create two macro dates using enterprise guide 7.1 SAS version 9.4. The first date is based off of today's date and works fine. alpha is yesterday. The second date is suppose to be the same day in the prior month from alpha. So if today is June 13, alpha is jun 12 and beta would be may 12.
data _null_;
call symputx('alpha', PUT(intnx('DAY',%SYSFUNC(today()),-1), date9.)); * yesterday;
call symputx('beta', PUT(intnx('MONTH',%SYSFUNC(&alpha,-1), date9.)); * last month same day;
RUN;
In your code, the macro preprocessor tries to resolve &alpha before it is created.
%sysfunc only accepts a data step function call as its argument, and not a macro variable.
A previous day is calculated best by simply subtracting 1 from a date.
data _null_;
call symputx('alpha', put(today()-1, date9.)); * yesterday;
call symputx('beta', put(intnx('month',today()-1,-1), date9.)); * last month same day;
run;
... View more