Sas 如何在proc步骤中解析日期宏变量

Sas 如何在proc步骤中解析日期宏变量,sas,Sas,这段代码给了我一个错误:error:解析WHERE子句时出现语法错误。 但是,当我简单地用相应的值替换&begdate和&enddate时,它就起作用了。我通常是这样运行我的: %macro example %let begdate = ’01Nov2004’d; %let enddate = ’30Nov2004’d; proc sort data=test out=test2; where date between &begdate and &am

这段代码给了我一个错误:
error:解析WHERE子句时出现语法错误。

但是,当我简单地用相应的值替换&begdate和&enddate时,它就起作用了。

我通常是这样运行我的:

%macro example     
%let begdate = ’01Nov2004’d;
     %let enddate = ’30Nov2004’d;
    proc sort data=test out=test2;
    where date between &begdate and &enddate;
    by date;
    run;
%mend example;

我只是删除了对日期格式的任何假设,并将代码中的宏变量作为字符串引用。希望这有帮助

当我添加
到第一行,并将“to
,它可以正常工作;所以你要么有这些问题中的一个,要么有其他问题。
%macro example     
%let begdate = 01Nov2004;
     %let enddate = 30Nov2004;
    proc sort data=test out=test2;
    where date between "&begdate"d and "&enddate"d;
    by date;
    run;
%mend example;