sas将字符串日期转换为日期并进行比较

时间:2014-05-06 20:02:25

标签: string function date sas

我有一个类似字符串的日期存储格式   anomesdia_mail ='2014-01-31'

我需要将其转换为日期才能将其与其他日期进行比较:   sevendays_after = '13FEB14:00:00:00'

我尝试了这个但是没有用:

anomesdia_mail1 = input(substr(strip(anomesdia_mail),1,10),MMDDYY10.);

之后我需要比较两者:

sum(case when b.anomesdia_mail<=a.sevendays_after then 1 else 0 end) 

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试将sevendays_after视为日期时间变量,并在将其与日期变量进行比较之前使用datepart从中提取日期,例如

data _null_;
    a = "2014-01-31";
    b = "13FEB14:00:00:00";
    a2 = input(a,yymmdd10.);
    b2 = datepart(input(b,datetime.));
    c= (a2 = b2);
    put _all_;
run;

答案 1 :(得分:0)

在我必须使用输入函数的日期转换它。 例如= mail date是一个格式为DD-MM-YYYY的字符串 首先: 我必须给它正确的顺序:

mesdiaano_mail_string = catx(separator,substr(mail_date,6,2),substr(mail_date,9,2),substr(mail_date,1,4));

然后以日期格式转换它:

mail_date_int = input(substr(strip(mesdiaano_mail_string),1,10),MMDDYY10.);

使用datepart函数我可以将它转换为一个整数,其中包含自1960年以来的天数并执行操作: