转换Month_Dt在sas

时间:2017-12-26 13:48:25

标签: sql sas proc-sql

我有一个这种格式的样本数据为char。

Month
2008-09 
2007-10 
2008-09

如何将上述内容作为日期' 01sep2008' (SAS DESIGN STUDIO)

2 个答案:

答案 0 :(得分:1)

使用输入功能

输入函数是使用信息解释字符变量的函数。 _(这与输入语句不完全相同,输入语句根据信息解释infile中的文本。)

可能有一个信息可以正确地解释2008-09之类的字符串,但我不知道一个,所以我只需要添加一个_01并应用信息{{1} }

实施例

根据您的情况(数据通知文件或数据集/您更喜欢数据步骤或sql / ...),完整的解决方案如下所示:

yymmdd10.

答案 1 :(得分:1)

有几种方法可以做到这一点。 Dirk有一个很好的方法将一天连接到字符串并使用INPUT()函数。

您还可以将yymmn6.信息与INPUT()一起使用。这要求你从字符串中去掉' - '。

data test;
x = '2008-05';
format y date9.;
y = input(compress(x,"-"),yymmn6.);
put y;
run;

您可以使用MDY()指定月,日和年。在这里,您使用SCAN()函数从字符串中选择月份和年份,使用“ - ”作为分隔符。

data test;
x = '2008-05';
format y date9.;
y = mdy(scan(x,2,'-'),1,scan(x,1,'-'));
put y;
run;