Sas 返回过去16年的特定日期
我只需要输出从当前到过去16年的特定日期 我有一个代码,它列出了所有季度。我需要修改它,以这样的方式,它应该只返回过去每个季度的当前季度 例如:如果当前quaretr=2020Q2,它应该以特定格式在输出中返回(2020q2019q2018q2……) 代码如下: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
%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')如果当前日期是您需要迭代的日期,则可以使用“相同”而不是“结束”。