我知道这样的事情
%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));
不起作用。
答案 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.;