Sas 如何在.xpt文件名中包含时间戳?

Sas 如何在.xpt文件名中包含时间戳?,sas,sas-macro,Sas,Sas Macro,我有一个输出SAS.xpt文件的SAS脚本。我目前使用PROC COPY方法生成此文件,因为所需的名称包含破折号,并且长度超过8个字符(我理解这是使用xport时的名称限制) 我的代码大致如下: LIBNAME TempSrc "C:\Temp"; LIBNAME xportout xport 'C:\Temp\1234-AB-FileOut_Name_.xpt'; PROC IMPORT datafile="C:\Temp\FileIn.csv" out=mydata dbm

我有一个输出SAS.xpt文件的SAS脚本。我目前使用PROC COPY方法生成此文件,因为所需的名称包含破折号,并且长度超过8个字符(我理解这是使用xport时的名称限制)

我的代码大致如下:

LIBNAME TempSrc "C:\Temp";
LIBNAME xportout xport 'C:\Temp\1234-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;
LIBNAME xportout xport "C:\Temp\1234-AB-File_Name_&today.&now..xpt";
我最近被要求在输出文件名中包含一个时间戳

我有这些宏来根据需要生成日期和时间:

%let today=%sysfunc(date(), date9.);
%let now=%sysfunc(time(), time5.); 
%let now=%sysfunc(compress(&now, :));
不过,我还没能成功地融入LIBNAME

以下两项都不起作用:

LIBNAME xportout xport 'C:\Temp\1234-AB-File_Name_&today.&now..xpt';
LIBNAME xportout xport 'C:\Temp\1234-AB-File_Name_' || &today. || &now. '.xpt';

如何在.xpt文件名中包含日期时间?

宏变量不会在“单引号”中解析。使用“双引号”如下:

LIBNAME TempSrc "C:\Temp";
LIBNAME xportout xport 'C:\Temp\1234-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;
LIBNAME xportout xport "C:\Temp\1234-AB-File_Name_&today.&now..xpt";

我在sas支持网站上读到一些东西,我认为,这表明xport语句需要单引号而不是双引号。无论如何,这完全符合预期。