我想创建一个SAS宏,为今年和去年以及上个月的月份编号创建符号。到目前为止,我有:提取SAS宏中的日期信息
%let LastMonth = %sysfunc(intnx(month,%sysfunc(date()),-1),DATE9.);
%let ThisMonth = %sysfunc(intnx(month,%sysfunc(date()),0),DATE9.);
%let ThisYear = %sysfunc(intnx(year,%sysfunc(date()),0),DATE9.);
%let LastYear = %sysfunc(intnx(year,%sysfunc(date()),-1),DATE9.);
这些给: %放&LastYear; - > 01JAN2013 %put&ThisYear; - > 01JAN2014 %put&LastMonth; - > 01JAN2014 %put&ThisMonth; - > 01FEB2014
我无法提取的年份和月份的数字,这样& LastMonth我想获得1(一月)和&去年2013等
因为我使用尝试了几个月月()函数:
%let LastMonth = %sysfunc(month(%sysfunc(intnx(month,%sysfunc(date()),-1),DATE9.)));
但是这给出了一个错误,我不明白为什么它发生是由于:
ERROR: Argument 1 to function MONTH referenced by the %SYSFUNC or %QSYSFUNC macro function is not a number.
ERROR: Invalid arguments detected in %SYSCALL, %SYSFUNC, or %QSYSFUNC argument list. Execution of %SYSCALL statement or %SYSFUNC or
%QSYSFUNC function reference is terminated.
任何帮助表示赞赏!
Doubel检查'你去年和月宏观分配过程中应用date9.'格式。 – 2014-02-17 15:56:13