温馨提示:本文翻译自stackoverflow.com,查看原文请点击:date - how to convert best12. to date9 SAS
date sas

date - 如何转换最佳12。

发布于 2020-04-15 22:34:17

下午好

所以我有BEST12。

在此处输入图片说明

我想转换为date9。

所以我的代码是

data step7_1;
set step7;
service_day2= input(put(datedate, z8.),yymmdd8.);
format service_day2 date9.;
run;

错误是

NOTE: Invalid argument to function INPUT at line 92 column 15.
NOTE: Mathematical operations could not be performed at the following places. The results of the
      operations have been set to missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4 at 97:15

我该如何解决这个问题?

谢谢

zu

查看更多

提问者
supercool djkazu
被浏览
39
mjsqu 2020-02-04 05:22

格式只是一种显示数据的机制,因此不需要应用函数来“转换”它,只需使用format语句应用格式:

data step7_1;
    set step7;
    service_day2 = datedate;
    format service_day2 date9.;
run;

如果不需要新变量,则可以只使用format语句:

data step7_1;
    set step7;
    format datedate date9.;
run;

或者,您可以直接使用来直接更改原始数据集PROC DATASETS

proc datasets lib=work nolist;
  modify step7;
  format datedate date9.;
quit;

这具有不复制数据的优点,它将运行得更快,并且只需修改就位的数据集元数据即可。