SAS:从yymmdd10转换日期格式.date9



我有一个sas数据集,其中一列名为"date"格式为yymmdd10。,如2022-05-24。

我试图把它转换成date9的格式。如下所示,但返回missing

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

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

日期' 24may2022d '是数字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;

最新更新