我有一个日期时间的字符串变量。有时它是像3040000这样的整数,有时是十进制值,如3130215.123。
我想将此转换为日期时间变量,例如mm-dd-yyyy
。
提前致谢。
补充:我认为值3130215.123指的是feb-15-2013 12:30:00。
答案 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);
没有机会进行测试,所以请随意评论你得到的任何错误。