proc sql;
select max(data_bsn_dt) into:date01 from tableA;
quit;
%put &date02;
打印出来:31DEC2017
%put year("&date01"d);
打印出:年份(“31DEC2017”d)
我使用代码:year(“& date01”d)来提取年份或月份,但现在不行。有些人有时间解决,谢谢。
即使在数据步骤中,它仍然无效..
data _nulll;
if year("&date01"d)=2017
then call execute('proc sql;
select * from tableB;');
run;
答案 0 :(得分:0)
它不起作用,因为您在过程或数据步骤之外调用它。
要让它在此上下文中工作,您需要将其包装在%SYSFUNC
:
%PUT %SYSFUNC(YEAR("&DATE01"d));
要添加整数,您可以使用%EVAL
(例如):
%PUT %EVAL(%SYSFUNC(YEAR("&DATE01"d))+7);