SAS:如何从marco变量中提取年/月/日并添加整数?

时间:2018-04-19 02:12:00

标签: sas

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;

1 个答案:

答案 0 :(得分:0)

它不起作用,因为您在过程或数据步骤之外调用它。

要让它在此上下文中工作,您需要将其包装在%SYSFUNC

%PUT %SYSFUNC(YEAR("&DATE01"d));

要添加整数,您可以使用%EVAL(例如):

%PUT %EVAL(%SYSFUNC(YEAR("&DATE01"d))+7);