使用 SAS,我使用传递速度从 SQL 数据库中提取数据,因为数据库非常大。下面的代码按预期工作。
%let expectdate1 = '2013-07-03';*/
proc sql;
connect to ***** as abc (tdpid=***** user='****' password='*****' );
create table Searched_data as
select * from connection to dss(
SELECT *
FROM database.tablename
WHERE CAPTURE_DT >= '2013-07-01' and CAPTURE_DT <= &expectdate1
);
disconnect from abc;
quit;
当我想要对 expectate1 进行参数化时,就会出现问题。
所以我替换
%let expectdate1 = '2013-07-03';*/
和
%let expectdate1 = put(Date(),YYMMDD10.);
这不起作用,我得到的错误类似于
....WHERE CAPTURE_DT >= '2013-07-01' and CAPTURE_DT <= put(Date(),YYMMDD10) .....
所以它不评估我的日期代码,而是将实际代码传递给 SQL,而不是结果字符串。