字符到日期转换

时间:2017-01-12 14:13:26

标签: sas

Data test;
x="20161";
run;

我有一个约会" 20161" (那是' jan2016')作为角色,现在我想把它显示为" jan2016",我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

要清楚,你从一个字符串变量开始,你希望结果是一个字符串变量?这似乎有潜在的限制,因为日期更容易被操纵为数字。

按字面意思提出请求,我会解析所提供字符串的前4个字符,并将它们作为年份。然后我会把所有其他角色都当作月份来对待。我们通过假设day = 1,使用MDY()函数创建一个真正的日期(数值变量)。

这为我们提供了一个中间数字变量,我们将其传递给PUT()函数,以便我们可以将数字转换为所需MONYY7中的字符串。格式。最后一部分是你想要输出字符串小写,所以我们将最终结果包装在LOWCASE()函数中。

Data test;
x="20161"; *the input;
y = mdy(substr(x,5),1,substr(x,1,4)); *a temporary intermediate variable that's a date/numeric var;
z = lowcase(put(y, MONYY7.)); *convert back to string in the desired format, and lowercase it;
drop y; *no longer needed;
run;