全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7395 8
2008-08-30

请教各位高人:

我有一个数据库的date都是yymmddn8.的,显示为19950331。 我想把它们变成best12.,但显示时还是19950331,可能吗?

我自己试了format date best12.; run; 但是却变成了以sas19600101为起点的日期型:12814。如何才能够显示数字型的19950331?

希望大家给点建议!多谢了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-8-31 10:01:00
yymmddn8.,没有这种格式,不知道你是要将日期型转换为数字型,还是数字型转换为日期型?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-8-31 13:09:00
sas的日期型变量 可以表示为日期的格式,也可以表示为从1960年01月01日00点00分00秒开始的数字,如果是1960/01/02,数字表示就是1,虽然显示为数字但其含义仍然是日期。

似乎sas中没有你要的显示格式,但可以用日期变量的各个组成 来拼一下。范例如下:
data dataNum;
do i=1 to 30;
date=mdy(01,i,2008);
m=month(date);
y=year(date);
d=day(date);
dataNum=y*1000+m*100+d;
end;
drop m d y i;
run;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-9-1 09:00:00
很难想象将日期型转为数字型有什么作用
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-9-1 19:10:00

非常感谢3楼的sqlai!!

用您的方法终于得到我想要的数字型日期了!

data newdate;

   set date;

y=year(date);

m=month(date);

d=day(date);

newdate=y*10000+m*100+d;

drop y m d;

  run;

其实语句都知道,怎么就是不会用呢?多亏您指点!论坛里确实卧虎藏龙!

多谢各位!!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-9-2 13:36:00
来个简单的:

data newdate;
   set date;
   tmpnewdate=put(date, yymmddn8.);
   newdate=input(tmpnewdate, best12.);
   drop tmpnewdate;
run;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群