我想在宏函数中使用宏变量来使用 proc sql 语句根据日期过滤数据集。
我的宏变量是这样创建的;
data _null_;
do i = 1 to 2;
call symputx(cats('start_date_' i), cats(2022+i, "-01-01"), "G");
call symputx(cats('end_date_' i), cats(2022+i, "-12-31"), "G");
end;
run;
所以
start_date_1
是2023-01-01
等等。
他们我在循环中使用它来创建数据集。
%macro getdata(start, end);
proc sql
create table sometable as
select *
from mydataset
where keydate betweeen &start and &end;
quit;
%mend getdata;
我已经用
&start
,proc sql
和类似的技巧重新填充了"&sstart"d
中的%tslit(&start)
,但没有运气。
当我查看数据样本时,关键日期看起来采用
date9.
格式,如 08FEN2022
.