我有一个名为 Last Payment 的专栏
last payment
12DEC09:00:00:00
所有的观察都遵循这个结构,我尝试了一个子字符串,这样
data want;
set have;
last_payment=substr(last_payment,1,7);
run;
这不起作用,我尝试使用 date7 格式化日期。和 date.9 但都只返回 ********,有人可以帮我将其格式化为 ddmmmyy ty。
我有一个名为 Last Payment 的专栏
last payment
12DEC09:00:00:00
所有的观察都遵循这个结构,我尝试了一个子字符串,这样
data want;
set have;
last_payment=substr(last_payment,1,7);
run;
这不起作用,我尝试使用 date7 格式化日期。和 date.9 但都只返回 ********,有人可以帮我将其格式化为 ddmmmyy ty。
在 date7 中格式化之前,您必须使用 datapart 函数。或日期9。例子:
data new;
format date_new date9. ;
date_new = datepart("12DEC09:00:00:00"dt);
run;
被审查的文本意味着使用了错误的格式。
下面的代码将处理您将日期时间读取为字符串和数值的两种情况。
代码:
data new;
format datetime_as_dt datetime21. dt_to_date date7. datetime1 date7.;
datetime_as_dt="12DEC09:00:00:00"dt;
datetime_as_string ="12DEC09:00:00:00";
/*Converting datetime to date*/
dt_to_date= datepart(datetime_as_dt);
/*converting datetime string to date*/
/*Option1: Convert string to datetime then extract date*/
datetime1 = datepart(input(datetime_as_string,datetime21.));
/*Option2: Extract date from string then convert to date*/
datetime2 = scan(datetime_as_string,1,':');
put _all_;
run;
日志:
datetime_as_dt=12DEC2009:00:00:00
datetime_as_string=12DEC09:00:00:00
dt_to_date=12DEC09
datetime1=12DEC09
datetime2=12DEC09
创建的表: