我有一个来自另一个宏的全局宏变量,当你在日志中打印时看起来像'01jan2014',即有强制引号
我想在proc sql语句中使用它,但我不能因为它不喜欢变量类型.
如何将其转换为proc sql语句的WHERE子句中的日期?
%let yourdate = 01Feb2015;
%put &yourdate; /* resolve to 01Feb2015 */
proc sql;
select *
from have
where date ge "&yourdate."d;
Run Code Online (Sandbox Code Playgroud)
要么
%let yourdate2 = '01Feb2015'd;
proc sql;
select *
from have
where date ge &yourdate2;
Run Code Online (Sandbox Code Playgroud)
我认为第一个更好,因为它不会包含'在宏变量中.
要以DDMONYYYY格式转换日期字符串,只需d在末尾添加一个.
'01jan2014'd
Run Code Online (Sandbox Code Playgroud)
将字符串转换为日期.
在你的情况下:
&var.d
Run Code Online (Sandbox Code Playgroud)
将解决
'01jan2014'd
Run Code Online (Sandbox Code Playgroud)
这将被解释为日期.