我正在创建一个SAS程序,允许用户输入他们想要调查的日期(作为全局变量)。我想在用户创建变量之前三个月创建第二个变量。
%let var1 = [user manually writes the variable in the code]
%let var2 = [3 months before var1]
我试过
var2 = intnx('month', input(put(&var1.,8.),yymmdd8.),-3)
哪个不起作用。
答案 0 :(得分:2)
假设您要使用和创建具有YYYYMMDD格式的日期字符串的宏变量,那么您可以使用%SYSFUNC()来实现。
%let date1=20170213 ;
%let date2=%sysfunc(intnx(month,%sysfunc(inputn(&date1,yymmdd8)),-3),yymmddn8);
%put &=date1 &=date2;
DATE1=20170213 DATE2=20161101