我有以下变量:
%let curr_score_date = '31DEC2013'D;
%let target_date = %sysfunc(intnx(month,&curr_score_date,12,e));
%let prod_start_date = %sysfunc(intnx(month,&curr_score_date,-11,b));
%let prod_end_date = %sysfunc(intnx(month,&curr_score_date,0,e));
如果根据this documentation进行评估,我会自行评估每个语句:
target_date = '31Dec2014'
prod_start_date = '01Jan2013'
prod_end_date = '31Dec2013'
但是,我想知道每个步骤是仅返回一个值,还是实际更新& curr_score_date。如果在每次计算时更新,这肯定会影响结果。
答案 0 :(得分:2)
在SAS中,functions
返回值(并且不能更改其参数),而call routines
可以更改其参数。
因此,在上文中,使用&curr_score_date
无法更改%sysfunc
。