SAS Num以季度格式发布

时间:2016-11-19 10:51:56

标签: date sas format

我的数据集的日期为格式201011,即2010年11月。我希望它以日期格式转换为2010Q4。我申请了YYQ6。格式,但它显示结果为2510Q4。这里有什么问题?

data abc;
date=201011;
run;

data abc2;
set abc1;
format date YYQ.;
run;

2 个答案:

答案 0 :(得分:0)

您需要将日期写为日期文字,否则SAS会将​​其解释为自1960年1月1日以来的天数。

试试这个:

data abc;
date='01nov2010'd;
run;

data abc2;
set abc1;
format date YYQ.;
run;

如果您有yyyymm格式的现有数字变量,则需要在应用格式之前先创建一个新变量,例如

newdate = input(put(date,6.), yymmn6.);
format newdate yyq.;

答案 1 :(得分:0)

data _null_;
    datenum=201011;
    dateval=mdy(mod(datenum,100),1,floor(datenum/100));
    put dateval mmddyy10.;
run;

不确定FLOOR功能是否必要 - 在这种情况下,没有它就可以正常工作。

问题是,这种算术操作和使用MDY的效率是否比转换为字符然后回到日期更有效?