data m;
input a$17. @;
cards;
2012-08-20
2012-07-21
2012-08-24
2013-08-05T10:00
2012-12-05
2012-01-20T18:30
2012-01-20T18:30
2012-07-02
;
data b;
set m;
if index(a,'T')>0;
b=input(scan(a,1,'T'),yymmdd10.);
format b date9.;
run;
data b2;
set m;
if index(a,'T')>0 then b=input(scan(a,1,'T'),yymmdd10.);
format b date9.;
run;
if then的条件语句没有错,只有if的那个程序输出来的结果少了没有时间的观测。
data m;
input a$17. @;
cards;
2012-08-20
2012-07-21
2012-08-24
2013-08-05T10:00
2012-12-05
2012-01-20T18:30
2012-01-20T18:30
2012-07-02
;
data b;
set m;
if index(a,'T')>0;
b=input(scan(a,1,'T'),yymmdd10.);
format b date9.;
run;
data b2;
set m;
if index(a,'T')>0 then b=input(scan(a,1,'T'),yymmdd10.);
format b date9.;
run;
用if then的结果是对的,只有if的那个结果输出少了没有时间的观测。