自己找到一个方法,先把日期时间合成一个字符格式,再利用substr分别取出hh mm ss,最后用DHMS函数生成最终的时间日期的格式,是自己想要的数值型了:
format day yymmddn8. Time tod12.2 datetime B8601DT19.;
dt_char= put(day,yymmddn8.)||"T"||cats(put(time,tod12.2)) ;
datetime=DHMS(cats(day),substr(cats(dt_char),10,2),substr(cats(dt_char),13,2),substr(cats(dt_char),16,2)) ;
不知哪位大侠还有更好的方法?
其實不用把時分秒個別抓出來,補0就好了
data test;
input date : yymmdd. time : hhmmss.;
datetime=dhms(date,0,0,time);
cards;
20130325 11:25:43.00
20130325 11:31:58.00
20130325 11:59:03.00
;
proc print;
format date yymmdd. time time. datetime datetime.;
run;