SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 928|回复: 3
打印 上一主题 下一主题

提取年份

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-11-13 11:26:10 | 只看该作者

提取年份

data a:  cod    time
             1       20030604
我想提取time的年份, 请问用yr= year(time), 怎么不可以。 谢谢, 还有其他方法吗?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-11-13 16:45:23 | 只看该作者

Re: 提取年份

[code:32jqtxjv]data a;
    input cod time_num yymmdd8. @3 time_chr $8.;
    format time_num yymmddn8.;
    year1=year(time_num);
    year2=input(substr(time_chr,1,4),best.);
    put time_num= time_chr=;
    put year1= year2=;
datalines;
1 20030604
;[/code:32jqtxjv]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-11-15 16:49:16 | 只看该作者

Re: 提取年份

试过了, 谢谢, 可以解决, 但是yymmdd*后面的值 8, 10, 12 有什么区别
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-11-18 17:01:22 | 只看该作者

Re: 提取年份

data _null_;
a='20100101';
b=year(input(a,anydtdte.));
put a= b=;
run;

可以这么做下,不过a要是字符,如果是数字的话,可以转成字符。如下:

data _null_;
a=20100101;
b=year(input(put(a,8.),anydtdte8.));
put a= b=;
run;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 20:21 , Processed in 0.068599 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表