如何在 .xpt 文件名中包含时间戳?
How can I include a timestamp in a .xpt filename?
我有一个输出 SAS .xpt 文件的 SAS 脚本。我目前使用生成它的 PROC COPY 方法,因为所需的名称包括破折号并且长于八个字符(我的理解是使用 xport 时的名称限制)。
我的代码大致如下:
LIBNAME TempSrc "C:\Temp";
LIBNAME xportout xport 'C:\Temp34-AB-FileOut_Name_.xpt';
PROC IMPORT datafile="C:\Temp\FileIn.csv"
out=mydata
dbms=dlm replace;
DELIMITER= ",";
getnames=yes;
options ExtendObsCounter=no;
RUN;
DATA TempSrc.SasFile;
set work.mydata
RUN;
PROC COPY in=TempSrc out=xportout memtype=data;
select stdy7673;
RUN;
我最近被要求在输出文件名中包含时间戳。
我有这些宏来根据需要生成日期和时间:
%let today=%sysfunc(date(), date9.);
%let now=%sysfunc(time(), time5.);
%let now=%sysfunc(compress(&now, :));
不过,我无法成功地合并到 LIBNAME 中。
以下均无效:
LIBNAME xportout xport 'C:\Temp34-AB-File_Name_&today.&now..xpt';
LIBNAME xportout xport 'C:\Temp34-AB-File_Name_' || &today. || &now. '.xpt';
如何在 .xpt 文件名中包含日期时间?
宏变量不会在 'single quotes' 中解析。使用 "double quotes" 如下:
LIBNAME xportout xport "C:\Temp34-AB-File_Name_&today.&now..xpt";
我有一个输出 SAS .xpt 文件的 SAS 脚本。我目前使用生成它的 PROC COPY 方法,因为所需的名称包括破折号并且长于八个字符(我的理解是使用 xport 时的名称限制)。
我的代码大致如下:
LIBNAME TempSrc "C:\Temp";
LIBNAME xportout xport 'C:\Temp34-AB-FileOut_Name_.xpt';
PROC IMPORT datafile="C:\Temp\FileIn.csv"
out=mydata
dbms=dlm replace;
DELIMITER= ",";
getnames=yes;
options ExtendObsCounter=no;
RUN;
DATA TempSrc.SasFile;
set work.mydata
RUN;
PROC COPY in=TempSrc out=xportout memtype=data;
select stdy7673;
RUN;
我最近被要求在输出文件名中包含时间戳。
我有这些宏来根据需要生成日期和时间:
%let today=%sysfunc(date(), date9.);
%let now=%sysfunc(time(), time5.);
%let now=%sysfunc(compress(&now, :));
不过,我无法成功地合并到 LIBNAME 中。
以下均无效:
LIBNAME xportout xport 'C:\Temp34-AB-File_Name_&today.&now..xpt';
LIBNAME xportout xport 'C:\Temp34-AB-File_Name_' || &today. || &now. '.xpt';
如何在 .xpt 文件名中包含日期时间?
宏变量不会在 'single quotes' 中解析。使用 "double quotes" 如下:
LIBNAME xportout xport "C:\Temp34-AB-File_Name_&today.&now..xpt";