SAS如何使用宏变量作为日期

时间:2015-02-17 01:44:01

标签: sas sas-macro

我有一个来自另一个宏的全局宏变量,看起来像 ' 01jan2014'当您在日志中打印它时 即有强制引号

我想在proc sql语句中使用它,但我不能因为它不喜欢变量类型。

如何将此转换为proc sql语句的WHERE子句中的日期?

2 个答案:

答案 0 :(得分:6)

%let yourdate = 01Feb2015;
%put &yourdate; /* resolve to 01Feb2015 */

proc sql;
select *
from have
where date ge "&yourdate."d;

%let yourdate2 = '01Feb2015'd;

proc sql;
select *
from have 
where date ge &yourdate2;

我认为第一个更好,因为它在宏变量中不会包含'

答案 1 :(得分:5)

要转换DDMONYYYY格式的日期字符串,只需在末尾添加d

'01jan2014'd

会将字符串转换为日期。

在你的情况下:

&var.d

将解析为

'01jan2014'd

将被解释为日期。