我在SAS中有一个表,其中包含一列日期但不是典型的日期格式(DD-MM-YY)。例如,其中一个是
21JUN2012:00:00:00
我能做什么,使其格式为
21君12
?我正在使用SAS Enterprise Guide,所以我知道我必须选择计算列,但我不知道如何从那里开始。我正在考虑使用TRANWRD,但我似乎无法使用它。
感谢您的帮助,谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
SAS中有许多日期格式和可用的信息来更改显示的日期格式。格式的完整列表可以在here in the SAS documentation中找到。所需的格式为ddmmyyd.
,您可以将格式应用于日期值(请参见col1_示例)。
对于日期时间值,您需要在应用格式之前使用DATEPART
函数提取日期值(请参见下面的col2_和col3_示例)。
如果日期以文本形式提供,则需要对其应用信息,以将其转换为SAS日期值,然后可以使用PUT
语句将所需的日期格式应用于该值。包括将该值转换回文本(请参见下面的col4_示例)。
data date_infile;
infile datalines delimiter=',';
input col1_date :date9. col2_dtime :datetime18. col3_dtime :datetime18. col4_text $18.;
format col1_date date9. col2_dtime col3_dtime datetime18.;
datalines;
21jun2012,21JUN2012:00:00:00,21JUN2012:12:34:56,21JUN2012:00:00:00
11aug2012,11AUG2012:00:00:00,11AUG2012:01:23:45,11AUG2012:00:00:00
05oct2019,05OCT2019:00:00:00,05OCT2019:01:23:45,05OCT2019:00:00:00
;
run;
data date_results;
set date_infile;
format col1_date col2_date col3_date col4_date ddmmyyd.;
col2_date = datepart(col2_dtime);
col3_date = datepart(col3_dtime);
col4_date = datepart(input(col4_text, datetime18.));
col4_date_as_text = put(put(datepart(input(col4_text, datetime18.)), ddmmyyd.), $8.);
run;