我想在我的变量'day_3_ago'
之前一年拉出相同的日期我的代码:
%macro date;
data _null_;
call symput ('day_3_ago', put(intnx('day',today(),-3, 'b'),yymmddn8.));
run;
%mend;
%date;
%let last_year_3dayago = [1 year before day_3_ago]
例如,如果我今天运行此代码,day_3_ago将是20170624.我希望last_year_3dayago为20160624
我目前的解决方案是:
%let last_year_3daygo = %sysfunc(intnx(day,%sysfunc(inputn(&day_3)ago.,yymmdd8)),-365),yymmddn8);
但这并不能说明闰年。
答案 0 :(得分:2)
不要将intnx
与day
一起使用,而是使用year
并使用s
(或same
)代替b
结束该功能。
data _null_;
x = intnx('year',today()-3,-1,'s');
putlog x :date9.;
run;
答案 1 :(得分:0)
我修改了Longfish的代码,用变量last_year_3dayago
来解决您的需求:
%let last_year_3dayago = 20170624;
data _null_;
x = intnx('year',input("&last_year_3dayago.",b8601da.),-1,'s');
putlog x :date9.;
run;