我需要编写一个将符号数据转换为数据格式的脚本。我有一个包含date
列的表格,其中包含28.01.2017 09:23:14
等字符串。我需要将它们转换为日期格式28.23.2017
。
我试过了:
data SMS_STAT;
set SMS_STAT;
date = input(date, DDMMYY9.);
put date = DDMMYY9.;
run;
另外,我在date
和put
中尝试了不同的格式,但这没有帮助:它转换为.
我已将28.01.2017 09:23:14
收录到28.01.2017
所以现在,我想从中做出约会。
答案 0 :(得分:3)
让我们创建一个名为DATE的字符变量的数据集,其值为:28.01.2017 09:23:14
。
data have ;
date='28.01.2017 09:23:14';
run;
如果您只想获取日期部分并将其保留为字符串,则只需使用SCAN()或SUBSTR()函数。
data want;
set have ;
date = scan(date,1,' ');
run;
如果要创建实际日期变量,则需要创建一个新变量,因为日期需要数字变量而不是字符变量。您可以使用INPUT()函数将当前字符串读入日期。然后,您可以附加您希望SAS显示数据的任何格式。
data want ;
set have ;
date2 = input(scan(date,1,' '),ddmmyy10.);
format date2 mmddyyp10. ;
run;
如果您只想将其保留为字符串并反转日期和月份字段,那么使用SUBSTR()函数可能更容易。
data want ;
set have ;
substr(date,1,5) = substr(date,4,2)||'.'||substr(date,1,2) ;
run;
答案 1 :(得分:0)
实际上,最后,我来到了这个解决方案:
dates = substr(date, 1, 10);
d=input(dates,DDMMYY10.);
format d DATE9.;