SAS日期怎样循环,比如20120131之后应该为20120201,但是我现在写的循环会变成20120132
展开全部
你做的日期循环并不是日期格式,而是8为的数值格式,按数值格式循环就会依次递增。
data d;
format date yymmdd10.;
do date = '31Jan2012'd to '01Mar2012'd;
output;
end;
run;
proc print data=d;
RUN;
以下为运行的结果:
1 2012-01-31
2 2012-02-01
3 2012-02-02
4 2012-02-03
5 2012-02-04
6 2012-02-05
7 2012-02-06
8 2012-02-07
9 2012-02-08
10 2012-02-09
11 2012-02-10
12 2012-02-11
13 2012-02-12
14 2012-02-13
15 2012-02-14
16 2012-02-15
17 2012-02-16
18 2012-02-17
19 2012-02-18
20 2012-02-19
21 2012-02-20
22 2012-02-21
23 2012-02-22
24 2012-02-23
25 2012-02-24
26 2012-02-25
27 2012-02-26
28 2012-02-27
29 2012-02-28
30 2012-02-29
31 2012-03-01
data d;
format date yymmdd10.;
do date = '31Jan2012'd to '01Mar2012'd;
output;
end;
run;
proc print data=d;
RUN;
以下为运行的结果:
1 2012-01-31
2 2012-02-01
3 2012-02-02
4 2012-02-03
5 2012-02-04
6 2012-02-05
7 2012-02-06
8 2012-02-07
9 2012-02-08
10 2012-02-09
11 2012-02-10
12 2012-02-11
13 2012-02-12
14 2012-02-13
15 2012-02-14
16 2012-02-15
17 2012-02-16
18 2012-02-17
19 2012-02-18
20 2012-02-19
21 2012-02-20
22 2012-02-21
23 2012-02-22
24 2012-02-23
25 2012-02-24
26 2012-02-25
27 2012-02-26
28 2012-02-27
29 2012-02-28
30 2012-02-29
31 2012-03-01
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询