SAS,将日期转换为数字

时间:2016-05-04 15:20:31

标签: sas

我有一列日期。例如08/2000,日期格式。如何将它们转换为数字形式082000?我在互联网上遵循一些准则,但这是不正确的。

ASOFDT_temp=datepart(ASOFDT);
ASOFDT_Num=putn( ASOFDT_temp,'yymmn6.');

2 个答案:

答案 0 :(得分:0)

一种好方法是使用VVALUE,如果它们已经有格式。 vvalue采用变量的格式化值。

  ASOFDT_num = input(compress(vvalue(ASOFDT),'/'),6.);

compress删除斜杠,input使其成为数字。 putn无效,因为它会创建一个字符变量(input - >数字,put - >字符,几乎总是如此。

答案 1 :(得分:0)

如果原始字段确实是DATE,那么您可以将其转换为适当位置,因为它已经是数字字段。

您可以使用PUT和INPUT函数调用来完成。

asofdt = INPUT(PUT(asofdt,YYMMn6.),6.);

或者你可以使用一点算术。

asofdt = year(asofdt)*100 + month(asofdt);

请记住从变量中清除日期格式,使其看起来像' 08/2000'使用FORMAT语句。

format asofdt ;