【发布时间】:2016-01-26 09:08:17
【问题描述】:
您好,我正在尝试从一个日期文件夹中导入数据(成功),因此文件路径为 /year/month/date(*今天的日期)
然后我正在调整一些数据(再次成功)。完成后,我想将其导出到一个文件夹,该文件夹比我从中提取它的文件夹提前 29 天。
这是我当前的宏:
%LET TODAY = %SYSFUNC(TODAY());
%PUT &TODAY;
%LET TODAYA = %SYSFUNC(PUTN(&TODAY,DDMMYYn8.));
%PUT &TODAYA;
%LET TWENTYNINE = %SYSFUNC(PUTN(&TODAY.+29,DDMMYYn8.));
%PUT &TWENTYNINE;
%LET T_DATE = %SYSFUNC(PUTN(&TODAY,DDMMYYn8..));
%LET T_YEAR = %SYSFUNC(YEAR(&TODAY));
%LET T_MONTH = %SYSFUNC(MONTH(&TODAY));
%LET P_DATE = %SYSFUNC(PUTN(&TWENTYNINE,DDMMYYn8..));
**%PUT &P_DATE;
%LET P_YEAR = %SYSFUNC(YEAR(&P_DATE));
%LET P_MONTH = %SYSFUNC(MONTH(&P_DATE));**
P_Date 显示错误:
错误:%SYSFUNC 或 %QSYSFUNC 宏函数引用的函数 MONTH 的参数 1 不是 一个号码。 错误:在 %SYSCALL、%SYSFUNC 或 %QSYSFUNC 参数列表中检测到无效参数。执行 %SYSCALL 语句或 %SYSFUNC 或 %QSYSFUNC 函数引用已终止。
但我无法理解它,任何帮助将不胜感激。
【问题讨论】:
-
&TWENTYNINE 不是数字,而是格式化的日期...
-
谢谢哥们,你会怎么做才能改变它以使其正确读取。对不起,这让我困惑了几天。曾经有过你无法真正想象问题的那一刻......
-
您需要将 P_DATE 设为从今天开始的 29 天吗?
-
是的,它们都在同一个文件目录中。
标签: sas