Sas 返回过去16年的特定日期

Sas 返回过去16年的特定日期,sas,sas-macro,Sas,Sas Macro,我只需要输出从当前到过去16年的特定日期 我有一个代码,它列出了所有季度。我需要修改它,以这样的方式,它应该只返回过去每个季度的当前季度 例如:如果当前quaretr=2020Q2,它应该以特定格式在输出中返回(2020q2019q2018q2……) 代码如下: %let REPORTING_PERIOD_YYYYMMDD =20200630; %let year_count = 16; %put &year_count; %let val_date_current = %sysfu

我只需要输出从当前到过去16年的特定日期

我有一个代码,它列出了所有季度。我需要修改它,以这样的方式,它应该只返回过去每个季度的当前季度

例如:如果当前quaretr=2020Q2,它应该以特定格式在输出中返回(2020q2019q2018q2……)

代码如下:

%let REPORTING_PERIOD_YYYYMMDD =20200630;
%let year_count   = 16;
%put &year_count;
%let val_date_current = %sysfunc(dhms(%sysfunc(inputn(&reporting_period_yyyymmdd., yymmdd8)),0, 0, 0));
%put &val_date_current;
%let val_date_first = %sysfunc(dhms(%sysfunc(intnx(year, %sysfunc(datepart(&val_date_current.)),-&year_count., end)), 0,0, 0));
%put &val_date_first;
%let val_date_count = %eval(%sysfunc(intck(dtquarter, &val_date_first., &val_date_current.)) + 1);
%put &val_date_count;

data Final;
do val_date_count=1 to &val_date_count.;
            val_date = intnx('quarter', datepart(&val_date_first.), val_date_count-1, 'end');
            arr_VAL_DATE = strip(put(val_date, ddmmyy10.));
            output;
end;
run;

谢谢,
Chithra

为什么在
intnx
函数中使用
quarter
?您可以使用
year
并在do循环中从1转到&year\u计数<代码>do val_date_count=1到&year_count。;val_date=intnx('year',datepart(&val_date_first.),-val_date_count,'end')intnx函数中使用
quarter
?您可以使用
year
并在do循环中从1转到&year\u计数<代码>do val_date_count=1到&year_count。;val_date=intnx('year',datepart(&val_date_first.),-val_date_count,'end')