我有一个使用date2的查询
call symput('date2',strip(" ' "||put(intx('month',today(),-2,'B'),date9.))||" ' "));
%put &date2;
基本上是运行日期前2个月的第一天
我还有另一个日期是2015年1月30日
我想为date列编写一个where条件,例如
where datecolumn >= '30jan2015'd and datecolumn <= &date2;
当我试着这样做的时候,我得到了一个错误 Expression using greater than or equal has components that are of different data types.
有谁能帮我修改查询以使where条件运行吗?
1条答案
按热度按时间kyvafyod1#
sas日期值是一个数字,表示从
01-JAN-1960
,或日期文字,它是形式的构造"<day>-<month>-<year>"D
.宏变量使用
&
源代码中的符号,而不是$
. 您是从不同的编码语言来sas的吗PHP
?因为范围检查包含端点,所以可以简化
where
您正在使用BETWEEN
而不是操作员。例子:
如果您仍然收到关于不同数据类型的日志消息,则可能必须转换
datecolumn
从字符串到相应的sas日期值。