SAS中文论坛

标题: 日期格式怎么转化 [打印本页]

作者: shiyiming    时间: 2010-8-20 07:51
标题: 日期格式怎么转化
想请教大侠,下面的日期格式之前是字符型的,怎么转化为日期的sas格式??先谢谢了。[code:v5jlyi8d]data y;
input id year;
cards;
1001        1975-01-23
1002        1972-01-08
1003        1971-4-3
1004        1989-12-6
1005        .
1006        1974-09-20
1007        1978-07-20
1008        1972-11-15
1009        1976-04-21
1010        1965-11-27
1011        .
1012        1974-04-12
1013        1977-02-16
1014        1978-10-1
1015        1977-02-19
1016        1974-01-09
1017        1978-02-27
1018        1975-09-21
1019        1976-6-2
1020        1976-11-12
1021        1972-7-7
1022        1970-1-7
1023        1971-2-18
1024        1975-10-11
1025        1978-6-3
1026        1973-11-3
;[/code:v5jlyi8d]
作者: shiyiming    时间: 2010-8-20 08:35
标题: Re: 日期格式怎么转化
[code:33f75kaz]data y;
        input id temp :$10.;
        if not missing(temp) then
                year=mdy(input(scan(temp,2),best.),
                                input(scan(temp,3),best.),
                                input(scan(temp,1),best.));
        format year yymmdd10.;
cards;
1001   1975-01-23
1002   1972-01-08
1003   1971-4-3
1004   1989-12-6
1005   .
1006   1974-09-20
1007   1978-07-20
1008   1972-11-15
1009   1976-04-21
1010   1965-11-27
1011   .
1012   1974-04-12
1013   1977-02-16
1014   1978-10-1
1015   1977-02-19
1016   1974-01-09
1017   1978-02-27
1018   1975-09-21
1019   1976-6-2
1020   1976-11-12
1021   1972-7-7
1022   1970-1-7
1023   1971-2-18
1024   1975-10-11
1025   1978-6-3
1026   1973-11-3
;[/code:33f75kaz]
作者: shiyiming    时间: 2010-8-20 09:44
标题: Re: 日期格式怎么转化
呵呵,再次看到hopewell的回复,心里面好舒坦,谢谢hopewell,
作者: shiyiming    时间: 2010-8-20 10:21
标题: Re: 日期格式怎么转化
to hopewwell,
    再次烦您,如果手边是一个sas数据集,而非cards之后的数据录入,此时“  input id temp :$10.;”这句话就省去,但是怎么表达 “input id temp :$10.”中的“ :$10”这个意思呢??
作者: shiyiming    时间: 2010-8-20 11:41
标题: Re: 日期格式怎么转化
year已经是数据集里的一个字符变量了,直接用就行
作者: shiyiming    时间: 2010-9-3 06:41
标题: Re: 日期格式怎么转化
[code:239ixvuq]  data y;
input id year:yymmdd10.;
format year date9.;
cards;
1001   1975-01-23
1002   1972-01-08
1003   1971-4-3
1004   1989-12-6
1005   .
1006   1974-09-20
1007   1978-07-20
1008   1972-11-15
1009   1976-04-21
1010   1965-11-27
1011   .
1012   1974-04-12
1013   1977-02-16
1014   1978-10-1
1015   1977-02-19
1016   1974-01-09
1017   1978-02-27
1018   1975-09-21
1019   1976-6-2
1020   1976-11-12
1021   1972-7-7
1022   1970-1-7
1023   1971-2-18
1024   1975-10-11
1025   1978-6-3
1026   1973-11-3
;
[/code:239ixvuq]
作者: shiyiming    时间: 2010-9-6 16:05
标题: Re: 日期格式怎么转化
[code:1addogyk]data y;
input id year:yymmdd.;
format year date9.;
cards;
1001   1975-01-23
1002   1972-01-08
1003   1971-4-3
1004   1989-12-6
1006   1974-09-20
1007   1978-07-20
1008   1972-11-15
1009   1976-04-21
1010   1965-11-27
1012   1974-04-12
1013   1977-02-16
1014   1978-10-1
1015   1977-02-19
1016   1974-01-09
1017   1978-02-27
1018   1975-09-21
1019   1976-6-2
1020   1976-11-12
1021   1972-7-7
1022   1970-1-7
1023   1971-2-18
1024   1975-10-11
1025   1978-6-3
1026   1973-11-3
;[/code:1addogyk]
作者: shiyiming    时间: 2010-9-25 14:39
标题: Re: 日期格式怎么转化
直接用input语句就可以了。

data y;
   input id temp :$10.;
   year=input(temp,yymmdd10.);
   format year yymmdd10.;
cards;
1001   1975-01-23
1002   1972-01-08
1003   1971-4-3
1004   1989-12-6
1005   .
1006   1974-09-20
1007   1978-07-20
1008   1972-11-15
1009   1976-04-21
1010   1965-11-27
1011   .
1012   1974-04-12
1013   1977-02-16
1014   1978-10-1
1015   1977-02-19
1016   1974-01-09
1017   1978-02-27
1018   1975-09-21
1019   1976-6-2
1020   1976-11-12
1021   1972-7-7
1022   1970-1-7
1023   1971-2-18
1024   1975-10-11
1025   1978-6-3
1026   1973-11-3
;
run;




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