SAS无法识别日期格式

时间:2015-08-13 14:59:42

标签: string sas character numeric informat

我有以下字符日期格式:

"3/1990"
"4/1990"
"5/1990"
...

我尝试了以下代码:

data work.temps;
  set indata;
  newdate = input(strip(Date), MMYYSw.);
  rename newdate = date;
run;

我继续收到以下错误消息:Informat MMYYSW was not found or could not be loaded.

3 个答案:

答案 0 :(得分:5)

您可能必须使用不同的信息来读取字符日期,以便SAS可以将它们解释为数字(因为SAS中的日期实际上是数字值),然后将它们格式化为MMYYS.

这已经过测试并且对我有用:

DATA temps;
FORMAT newdate MMYYS.;
SET indata;
newdate = INPUT(COMPRESS('01/'||date),DDMMYY10.);
RUN;

答案 1 :(得分:2)

尝试使用anydtdte:

data have;
    input date $10.;
    _date=input(compress(date,'""'),anydtdte.);
    format _date MMYYs7.;
    cards;
    "3/1990"
    "4/1990"
    "5/1990"
    ;
    run;

答案 2 :(得分:1)

您所指的是格式,而不是格式。 您将使用具有PUT功能的格式,对于INPUT,您需要信息。

无论如何我没有找到合适的信息直接使用,所以你需要做更多的事情:

data work.temps;
infile cards truncover;
input Date $10.;
newdate=MDY( scan(Date,1, '/'), 1, scan(Date,2, '/') );
cards;
3/1990
4/1990
5/1990
;
run;

SCAN从字符串中获取第N个单词,MDY从Month,Day和Year创建DATE。 上面的代码给出了该月的第一天。