SAS:将日期转换为数字

时间:2017-04-05 12:27:09

标签: sas

我有一个包含日期值的列。因此,当导入为数字时,它显示20668,20669 ...等。如果我将其格式化为yymmddn8,它显示20160802等。但是,我真正想要的是显示20160802的数字变量。我试图创建其他来获取日,月,年然后连接它们。不幸的是,问题是如果月份和日期是1位数,它只会显示201682.实现目标的最快方法是什么。我想一个可以将日期和月份变量转换为文本,如果日期或月份小于10则添加0.但这不是优雅和有效的。请帮忙。 感谢

2 个答案:

答案 0 :(得分:1)

您可以围绕该格式包装input

data test;
    date = 20668;
    full_date = input(put(date,yymmddn8.),best12.);
run;

put正在按照您希望的格式将日期转换为字符,而input格式的best12.将其转换为该格式的数字。

答案 1 :(得分:1)

听起来您只需要在变量中附加格式。

format date yymmddn8. ;

尝试运行此程序以查看可用于显示日期的一些不同格式。

data _null_;
  do date = 20668, 20669 ;
     put (6*date) (=10. =date9. =yymmddn8. =mmddyy10. =ddmmyy10. =yymmdd10.) ;
  end;
run;