如何在sas中将字符串日期变量转换为datetime变量

时间:2014-05-09 15:57:21

标签: datetime sas

我有一个日期时间的字符串变量。有时它是像3040000这样的整数,有时是十进制值,如3130215.123。

我想将此转换为日期时间变量,例如mm-dd-yyyy

提前致谢。

补充:我认为值3130215.123指的是feb-15-2013 12:30:00。

3 个答案:

答案 0 :(得分:1)

我认为这些是 3YYMMDD.HHMM

3130215.123 -> 3|13|02|15|12|30

(假设最后的0)。

所以,你需要:

length year month day hour minute second $2;
year=substr(dtvar,2,2);
month=substr(dtvar,4,2);
day=substr(dtvar,6,2);
hour=translate(subpad(dtvar,9,2),'0',' ');
minute=translate(subpad(dtvar,11,2),'0',' ');
second=translate(subpad(dtvar,13,2),'0',' ');

然后

new_dtvar=dhms(mdy(month,day,year),hour,minute,second);

答案 1 :(得分:0)

日期,时间和日期时间存储为双精度数。只有格式才能显示。

var1 = input(var,best.); 

format var1 datetime19.;

在数据步骤中应用格式。然后看看结果。

答案 2 :(得分:0)

根据对原始问题的评论,陈述将是:

format var_date ddmmyyd10. var_time time5. var_datetime datetime19.; 
var_date=input(put(int(17000000+(var)),10.),yymmdd10.);
var_time=input(put((var-int(var))*1e6,z6.),hhmmss6.);
var_datetime=dhms(var_date,hour(var_time),minute(var_time),0);

没有机会进行测试,所以请随意评论你得到的任何错误。