Sas 输入函数不接受??在where=dataset选项中使用时的修饰符

Sas 输入函数不接受??在where=dataset选项中使用时的修饰符,sas,Sas,我的过程打印中有以下声明: where ZBTESTCD = 'NEOPSTYP' and missing(input(zbdtc,??e8601dt.)); 当我运行SAS时,它会发出一个错误: ERROR: Syntax error while parsing WHERE clause. ERROR 22-322: Expecting a format name. ERROR 200-322: The symbol is not recognized and will be

我的过程打印中有以下声明:

    where ZBTESTCD = 'NEOPSTYP' and missing(input(zbdtc,??e8601dt.)); 
当我运行SAS时,它会发出一个错误:

ERROR: Syntax error while parsing WHERE clause.
ERROR 22-322: Expecting a format name.  
ERROR 200-322: The symbol is not recognized and will be ignored.
当在数据步骤的
if
中使用
时,同样的条件
缺失(输入(zbdtc,?e8601dt.)
工作正常


这是记录在案的行为吗?比在proc调用之前使用datastep更好的解决方法是什么?

用于抑制数据步骤中
\u错误
的设置。所以它在WHERE子句中没有任何意义,尤其是在PROC而不是数据步骤中使用的WHERE子句

只需使用一个

??还是

指定可选问号(?)和双问号 标记(??)修改器,该修改器可抑制两个错误的打印 读取无效数据值时的消息和输入行。这个 修饰符抑制无效数据消息。这个修饰语也 抑制无效数据消息,并防止 当输入无效数据时,自动变量_ERROR u被设置为1 阅读


请粘贴数据语句的完整标题。语法是不同的,这取决于它是在SET语句中还是在独立语句中。为什么这样说?(除了是
where=(…)
无论如何,如果这是你的意思,那将是另一个错误。)@Joe我这么说是因为我想看完整的代码。不,我不记得所有的错误代码。