SAS:从 yymmdd10 转换日期格式。迄今为止9

SAS: Converting the date format from yymmdd10. to date9

我有一个 sas 数据集,其中有一列名为“日期”,格式为 yymmdd10。例如 2022-05-24。

我试着把它转换成date9的格式。如下所示,但 returns 缺失。

data want;
set have;
date1 = input(date,yymmdd10.);
format date1 date9. 
run;

所以我想知道什么是正确的代码。谢谢!

日期“24MAY2022”是数字 22,790。要让它显示为 24MAY2022 而不是 2022-05-24 只需更改用于显示它的格式。

data want;
  set have;
  format date date9. ;
run;

您的代码将 DATE 视为字符变量。因此 SAS 将首先使用 BEST12 将数字 22,790 转换为字符串。格式。由于您的信息格式的宽度仅为 10,因此 INPUT() 函数将尝试转换 12 字符串 22790 的前 10 个字符。但是字符串 227 不能被该信息解释为日期,因此缺少值。

修改数据集中日期的外观,而不使用 PROC DATASETS 重新创建数据集。

title 'Initial format';
proc print data=have(obs=5);
var date;
run;

*modify format;
proc datasets lib=work nodetails nolist;
modify have;
format date date9.;
run;quit;

title 'New format';
proc print data=have(obs=5);
var date; 
run;