【发布时间】:2018-07-11 10:21:49
【问题描述】:
是否可以将宏变量放入 PROC DB2EXT 查询中?
这行得通:
WHERE SDD BETWEEN '01.05.2018' AND '30.05.2018'
但是我所有插入宏变量的尝试都导致错误
宏声明
/* Statement in SAS, declaring the Macro, and transfering in to the remote session */
%let month = 05;
%SYSLPUT MONTH = &month;
%PUT &MONTH;
DB2EXT SQL
/* Error(-180): DSN00180E THE DATE, TIME, OR TIMESTAMP VALUE 01."&month.".2018 IS INVALID */
WHERE SDD BETWEEN '01."&month.".2018' AND '30.05.2018'
/* Error(-206): DSN00206E 01.MAY.2018 IS NOT VALID IN THE CONTEXT WHERE IT IS USED */
WHERE SDD BETWEEN "01.&month..2018" AND '30.05.2018'
/* Futile attemps */
WHERE SDD BETWEEN '01&month2018' AND '30.05.2018'
WHERE SDD BETWEEN '01month2018' AND '30.05.2018'
【问题讨论】:
-
尝试在 DB2EXT 查询中使用 ISO 格式的文字值,即文字最终看起来像 'YYYY-MM-DD'(对于日期文字)。