在表达式

时间:2015-11-01 15:16:54

标签: sas

我在if语句中调用日期时遇到问题。我的日期是,例如,“2001-08-05”。我试图根据日期对我的数据进行子集化。所以这是我的代码:

If ID = "Yes" and Date > 2001-08-05 then delete;

但这不符合我的要求。我没有收到错误,但它没有执行我的要求。我试过“2001-08-05”d。同样,但这产生了一个错误。是否有某种方式来阅读这种格式?

2 个答案:

答案 0 :(得分:2)

SAS中日期常量的正确格式为'ddmmmyyyy'd,因此:

if ID = 'Yes' and Date > '05Aug2001'd

您可以使用单引号或双引号来分隔常量。常量中的月份名称不区分大小写。

另一方面,如果您需要在SAS中执行日期时间常量,则格式为'ddmmmyyyy:hh:mm:ss'dt。请注意,后缀变为dt而不仅仅是d,日期和时间之间有一个分号。

答案 1 :(得分:2)

或者你可以尝试将角色转换为日期

If ID = "Yes" and Date > input('2001-08-05',yymmdd10.) then delete;