07-03-2014 10:34 AM
I would like to bring data 10 days older from the start date.
I have created a macro for start date shown below.
%let start_dt = '01APR2014'd ;
% let old_dt = %eval(%input(&start_dt ,8.) - 10);
this gives erro
07-03-2014 10:46 AM
Dates are just numbers, so the easy thing to do is to ensure you seed your %EVAL expression with them as numbers using SAS functions.
07-03-2014 10:54 AM
Well, few things there. The start_dt macro variable will contain the text '01APR2014'd
when this resovles on the eval you will get: %let old_dt = %eval(%input('01APR2014'd ,8.) - 10);
This will fail as there is a d after the quote. Also, you have a space between the % and let.
I would question why you need to do this as:
call symput('OLD_DT','01APR2014'd - 10);
would give the result, plus several other methods of getting there.