我在变量中有一个值:
select max(input(record_date, yymmdd10.)) into :LastDate from My_TABLE;
(record_date
是char
,上面的输出是23JUL2017
。)
我将如何操纵此值?让我们说我想减少它一天。当我这样做时:
%let LastDate = intnx("day", &LastDate, -1);
LastDate
的字面值intnx("day", 21023, -1)
,而我希望22Jul2017
或21022
。
答案 0 :(得分:4)
如果要在宏代码中使用SAS函数,则需要将它们包含在el.style.setProperty
宏函数中。还要记住,您不需要在宏代码中添加字符串文字的引号,因为所有内容都是宏处理器的字符串。
%sysfunc()
但这确实有点矫枉过正,因为日期只是天数。你可以减去一个。
%let LastDate = %sysfunc(intnx(day,&LastDate,-1));
或者,如果您使用日期文字,例如' 23JUL2017' d则需要使用%let LastDate = %eval(&LastDate -1);
功能。
%sysevalf()
当然你也可以在制作宏变量之前减去一天。
%let LastDate = %sysevalf(&LastDate -1);