【发布时间】:2015-02-17 01:44:00
【问题描述】:
我有一个来自另一个宏的全局宏变量,看起来像 '01jan2014' 当你在日志中打印它时 即有强制引号
我想在 proc sql 语句中使用它,但我不能,因为它不喜欢变量类型。
如何将其转换为我的 proc sql 语句的 WHERE 子句中的日期?
【问题讨论】:
我有一个来自另一个宏的全局宏变量,看起来像 '01jan2014' 当你在日志中打印它时 即有强制引号
我想在 proc sql 语句中使用它,但我不能,因为它不喜欢变量类型。
如何将其转换为我的 proc sql 语句的 WHERE 子句中的日期?
【问题讨论】:
%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;
我认为第一个更好,因为它不会在宏变量中包含'。
【讨论】:
要将日期字符串转换为 DDMONYYYY 格式,只需在末尾添加 d。
'01jan2014'd
将字符串转换为日期。
在你的情况下:
&var.d
将解析为
'01jan2014'd
这将被解释为日期。
【讨论】: