我有一列最好的日期。格式例如201301是2013年1月,201402是2014年2月。
是否可以将其转换为date9。格式?
我最终希望只列出年份,即2013、2014、2015、2016等。
我的主表称为“ file1”,带日期的列称为“ date1”,而我希望仅包含年份的列称为“ year1”。 我尝试过:
data file1;
year1= date1
format year1 YEAR4.
run;
但这没有用。它给了我两个标题为year1和date1的空白单元格的输出。
答案 0 :(得分:1)
由于date1变量不是SAS日期,即您仅具有代表2013年1月的数值201301,因此您应该能够使用一些数学函数,例如:
data want;
set file1;
year1 = int(date1/100);
run;
答案 1 :(得分:0)
这有点尴尬,因为您必须从数字转换为字符然后再次返回:
data _null_;
mydate = 201301;
mydate9 = input(put(mydate,6.),yymmn6.);
format mydate9 date9.;
put _all_;
run;
答案 2 :(得分:0)
您应该首先检查它是否为6位数而不是yymmn6。日期格式。如果是yymmn6。格式,您只需添加格式year4。或date9。否则同意user667589:
data test;
format date1 year4.;
set file1;
run;
data test2;
format mydate9 date9. myyear year4.;
mydate = 201301;
mydate9 = input(put(mydate,6.),yymmn6.);
myyear = mydate9;
run;