各位,在写一个macro,其中想要生成一个variable为输入日期的前一天,输入的日期wanted_date为BEST12.数字格式(如日期"02JUL2015"d会被输入为20271),现在写的程序为:
%let wanted_date_minus=%sysevalf(&wanted_date-1);
%let file_date_minus=%sysfunc(putn(&wanted_date_minus,yymmddn8.));
&file_date_minus期望生成出输入日期前一天的yyyymmdd格式(如:输入20271则期望生成20150701)。在macro外用%put看是正常的,但是放在macro中运作会报错:
ERROR: %SYSFUNC 或 %QSYSFUNC 宏函数引用的函数 PUTN 中的参数 1 不是数字。
ERROR: %SYSCALL、%SYSFUNC 或 %QSYSFUNC 参数列表中检测到无效参数。
%SYSCALL 语句或 %SYSFUNC 以及 %QSYSFUNC 函数引用将终止执行。
请各位解惑,谢谢!