SAS导出日期格式

SAS导出日期格式,sas,Sas,您好,我正在尝试(成功)从一个日期为的文件夹导入数据,因此文件路径为/year/month/date(*今天的日期) 然后我调整了一些数据(再次成功)。完成后,我想将它导出到一个文件夹,该文件夹比我从中获取它的文件夹提前29天 以下是我当前的宏: %LET TODAY = %SYSFUNC(TODAY()); %PUT &TODAY; %LET TODAYA = %SYSFUNC(PUTN(&TODAY,DDMMYYn8.)); %PUT &TODAYA; %LET TW

您好,我正在尝试(成功)从一个日期为的文件夹导入数据,因此文件路径为/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_日期显示错误:

错误:%SYSFUNC或%QSYSFUNC宏函数引用的函数MONTH的参数1不正确 一个数字。 错误:在%SYSCALL、%SYSFUNC或%QSYSFUNC参数列表中检测到无效参数。执行 %SYSCALL语句或%SYSFUNC或%QSYSFUNC函数引用的终止


但我无法理解,任何帮助都将不胜感激。

叠加%sysfunc的方法非常方便:

%LET P_YEAR = %SYSFUNC(YEAR(%SYSFUNC(TODAY())+29));
%LET P_MONTH = %SYSFUNC(MONTH(%SYSFUNC(TODAY())+29));
%PUT &P_YEAR &P_MONTH;
结果:

2016 2
编辑

(试着先自己解决,但这里有一个完整的解决方案…)


叠加%sysfunc很方便:

%LET P_YEAR = %SYSFUNC(YEAR(%SYSFUNC(TODAY())+29));
%LET P_MONTH = %SYSFUNC(MONTH(%SYSFUNC(TODAY())+29));
%PUT &P_YEAR &P_MONTH;
结果:

2016 2
编辑

(试着先自己解决,但这里有一个完整的解决方案…)


如果要确定用于今天日期的源路径,请使用
today()
函数。您可以应用
YYMMDDS
格式将其显示为YYYY/MM/DD

%let frompath=%sysfunc(today(),yymmdds10);
如果要从源路径计算目标路径,则可以使用
INPUTN()
函数将其转换回日期,添加29并使用
PUTN()
函数将其转换回字符串

%let topath=%sysfunc(putn(29+%sysfunc(inputn(&frompath,yymmdd10)),yymmdds10));

如果要确定用于今天日期的源路径,请使用
today()
函数。您可以应用
YYMMDDS
格式将其显示为YYYY/MM/DD

%let frompath=%sysfunc(today(),yymmdds10);
如果要从源路径计算目标路径,则可以使用
INPUTN()
函数将其转换回日期,添加29并使用
PUTN()
函数将其转换回字符串

%let topath=%sysfunc(putn(29+%sysfunc(inputn(&frompath,yymmdd10)),yymmdds10));


&TWENTYNINE不是一个数字,它是一个格式化的日期…谢谢你,伙计,你会怎么做来更改它,使其正确读取。对不起,这几天我一直很困惑。曾经有过这样一个时刻,你不能真正想象这个问题……你需要P_日期是从今天算起的29天吗?是的,它都在同一个文件目录中。&TWENTYNINE不是一个数字,它是一个格式化的日期……谢谢老兄,你会如何更改它以使其正确读取。对不起,这几天我一直很困惑。曾经有过你无法想象问题的时刻……你需要P_日期是从今天算起的29天吗?是的,它都在同一个文件目录中。我会尝试一下,然后再给你回复,非常感谢你的快速回复。结果我也把P_日期弄糟了。它返回为*******查看我的编辑。这有点过分了,但是你有一个格式化变量和一个宏变量用斜杠保存完整的日期…谢谢你,伙计,不会检查你的,但我会尝试自己保存,真的很感谢你的帮助:)嘿,随时,这很有趣!:)我试一下,然后再给你回复,非常感谢你的迅速回复。结果我也把P_的日期弄糟了。它返回为*******查看我的编辑。这有点过分了,但是你有一个格式化变量和一个宏变量用斜杠保存完整的日期…谢谢你,伙计,不会检查你的,但我会尝试自己保存,真的很感谢你的帮助:)嘿,随时,这很有趣!:)