SAS如何将宏变量用作日期

SAS how to use a macro variable as a date

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

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

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

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

'01jan2014'd

会将字符串转换为日期。

你的情况:

&var.d

将解析为

'01jan2014'd

这将被解释为日期。

%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;

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