【发布时间】:2015-08-04 18:58:29
【问题描述】:
我创建了一个宏变量,它是程序运行不到一个月时的日期时间,格式为 datetime20:
%let startDate = %sysfunc(intnx(dtmonth, %sysfunc(datetime()), -1), datetime20.);
这部分工作正常(如果我现在运行它,它会返回 01JUL2015:00:00:00),但我想做的是在 PROC SQL 语句中根据此日期对数据集进行子集化。基本上我想保留上个月日期发生的所有内容。我的代码是:
proc sql;
create table work.last_month as
select * from work.existing_table
where date >= &startDate.;
quit;
“date”列和“startDate”变量都是'datetime20'类型,但仍然抛出错误:
错误 22-322:语法错误,应为以下之一:;, !, !!, &, *, **, +, -, /, , =, >, >=, AND, EQ, EQT, EXCEPT, GE, GET, GROUP, GT, GTT, HAVING, INTERSECT, LE、LET、LT、LTT、NE、NET、NOT、OR、ORDER、OUTER、UNION、^、^=、|、||、~、~=。
我不知道它为什么会抛出这个错误。我做错了什么?
谢谢!
【问题讨论】: