SAS中文论坛

标题: 问个关于日期的问题 [打印本页]

作者: shiyiming    时间: 2011-12-4 10:16
标题: 问个关于日期的问题
因为工作,刚学sas,对proc sql 以外的东西不太知道,事实上prco sql 也不知道多少,所以这个问题比较弱,但是急需知道答案。。。

比如现在有个时间 temp=2011-08-24,我想把这个时间往前推四个月,也就是 2011-4-24。

我以为 INTNX 可以,INTNX('Month', temp, -4), 但是现在发现好像会把结果align, 得不到我想要的结果,不知道有没有其他的函数可以用? 谢谢!

还有就是如何能把一个时间 align 到这个月的最后一个工作日? 像股票的日数据的日期那样。

非常感谢!
作者: shiyiming    时间: 2011-12-4 11:03
标题: Re: 问个关于日期的问题
data test;
   input temp yymmdd10.;
   format temp yymmdd10.;
   new=intnx('month',temp,-4,'same');
   last=intnx('month',temp,-4,'end');
   format new last yymmdd10.;

cards;
2011-08-24
2011-09-12
;
run;
proc print data=test;run;
作者: shiyiming    时间: 2011-12-8 09:50
标题: Re: 问个关于日期的问题
谢谢帮忙,非常感谢!以前看了没看到 "same" ...,
作者: shiyiming    时间: 2011-12-24 13:13
标题: Re: 问个关于日期的问题
[quote="yugao1986":3p2nd379]data test;
   input temp yymmdd10.;
   format temp yymmdd10.;
   new=intnx('month',temp,-4,'same');
   last=intnx('month',temp,-4,'end');
   format new last yymmdd10.;

cards;
2011-08-24
2011-09-12
;
run;
proc print data=test;run;[/quote:3p2nd379]
我运行的结果还不是提前四个月的呀?!2011-08-24变成了 2011-04-01...
作者: shiyiming    时间: 2012-2-24 10:49
标题: Re: 问个关于日期的问题
data test;
input temp yymmdd10.;
format temp yymmdd10.;
new=intnx('month',temp,-4,'same');
last=intnx('month',temp,-4,'end');
format new last yymmdd10.;
cards;
2011-08-24
2011-09-12
;
run;
proc print data=test;run;
可以的。end刚好生成的是这个月的最后一天。




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2