我有一个来自另一个宏的全局宏变量,看起来像 ' 01jan2014'当您在日志中打印它时 即有强制引号
我想在proc sql语句中使用它,但我不能因为它不喜欢变量类型。
如何将此转换为proc sql语句的WHERE子句中的日期?
答案 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
将被解释为日期。