我在SAS中有一个日期值,例如20NOV2018
,它是日期格式。我需要一个可以将DayMonthtYear与20 NOV 2018
等空格分开的SAS函数。
哪个SAS功能可以解决我的目的?
答案 0 :(得分:3)
如果要格式化(即仅用于显示),则不应该更改数据类型,或者如果要更改数据类型(那么它不再是日期而是字符值),则可以按照@amir答案进行操作,即长官。否则,图片格式可以帮助您格式化日期。
proc format;
picture mydate (default = 11)
low-high = '%0d %b %Y'(datatype=date);
run;
data have;
input num_date:date9.;
format num_date mydate.;
datalines;
20NOV2018
09SEP2018
;
输出是
Obs num_date
1 20 Nov 2018
2 09 Sep 2018
答案 1 :(得分:0)
我想不出一个可以满足您要求的函数,因此下面提供了两种替代方法:
/* set up the SAS date required */
data have;
format num_date date9.;
input num_date date9.;
datalines;
20NOV2018
;
/* create char_date1 and char_date2 with spaces in the date values */
data want;
set have;
char_date1 = catx(' '
,day(num_date)
,put(num_date,monname3.)
,year(num_date)
);
char_date2 = put(num_date,worddatx.);
run;
答案 2 :(得分:0)
在定义日期变量时,可以使用format更改日期变量的格式。 您要求的格式与mmddyyw一起使用。格式。 我建议您应该尝试使用mmddyyw。 w代表2到10。 尝试mmddyy10。解决您的问题并获得类似01/02/2019的输出。
欢呼的:)