将上个月/年设置为SAS中的宏变量

时间:2014-11-04 06:29:00

标签: macros sas

我知道这样的事情

%let start_date = %sysfunc(intnx(day,%sysfunc(date()),-1),DATE9.);
%put &start_date;

但是

%let start_month = %sysfunc(month(intnx(month,%sysfunc(date()),-1),DATE9.));
%put &start_month;

%let start_date = %sysfunc(intnx(month,%sysfunc(date()),-1),DATE9.);
%put %sysfunc(month(&start_date));

不起作用。

1 个答案:

答案 0 :(得分:2)

您需要在INTNX之前使用另一个%SYSFUNC才能使您的示例正常工作。

%let start_month = %sysfunc(month(%sysfunc(intnx(month,%sysfunc(date()),-1))));
%put &start_month;

但是,我更喜欢使用DATA NULL,其中%LET需要很多%SYSFUNC语句。以下为您提供相同的结果。

data _null_;
call symputx('start_month ', month(intnx('month',date(),-1)));
run;
%put &start_month.;