使用作为日期的宏变量传递

首先,我将我的日期放入宏变量。

注意:我发现 date9。适用于 IBM®Netezza®SQL 和 Transact-SQL。使用适用于你正在执行的 SQL 类型的格式。

data _null_;
            call symput('testDate',COMPRESS(put(today(),date9.)));
;RUN;
%PUT &testDate;

我的%PUT 语句解析为:10MAR2017

接下来,我想运行 PROC SQL Pass-through 并解决其中的宏变量以指定日期。

PROC SQL;
CONNECT TO odbc AS alias (dsn=myServer user=userName password= pass);
CREATE TABLE TableName AS 
SELECT * 
FROM connection to alias
    (
        SELECT *
        FROM
            Database.schema.MyTable
        WHERE
            DateColumn = %bquote('&testDate')
    );
QUIT;

当代码执行时,%bquote(’&testDate’)将解析为'10MAR2017’。