Sas 在表达式中使用日期作为常量

Sas 在表达式中使用日期作为常量,sas,Sas,我在if语句中调用日期时遇到问题。例如,我的日期是“2001-08-05”。我正在尝试根据日期对数据进行子集划分。这是我的代码: If ID = "Yes" and Date > 2001-08-05 then delete; 但这不符合我的要求。我没有得到一个错误,但它没有执行我的要求。我试过“2001-08-05”d。同样如此,但这产生了一个错误。是否有某种方法可以读取此格式?SAS中日期常量的正确格式为'ddmmmyyyy'd,因此: if ID = 'Yes' and Date

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

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

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

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

if ID = 'Yes' and Date > '05Aug2001'd
可以使用单引号或双引号分隔常量。常量中的月份名称不区分大小写


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

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

if ID = 'Yes' and Date > '05Aug2001'd
可以使用单引号或双引号分隔常量。常量中的月份名称不区分大小写


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

或者您可以尝试将字符转换为日期

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

或者你可以试着把这个角色隐藏起来

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

SAS不关心是否使用单引号或双引号作为字符串或其他文字的括引号。事实上,如果要引用带引号字符串中的宏变量或宏函数,则需要使用双引号字符,而不是单引号(撇号)字符。SAS不关心是否使用单引号或双引号作为字符串或其他文字的括引号。事实上,若要引用带引号字符串中的宏变量或宏函数,则需要使用双引号字符,而不是单引号(撇号)字符。