全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8956 12
2010-08-23
原来的数据是四位数字的年度日期(比如2009)

现在想在每个日期后加上1231,就是每年的12月31日。希望仍然是日期格式,比如2009年,想改成2009年12月31日(20091231),不知道有办法改不?

就是把所有年度数据后面都加上1231,格式还是日期格式。

不知哪位有办法?
谢谢了!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-8-23 15:32:14
复制代码
二维码

扫码加我 拉你入群

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

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

2010-8-23 15:41:02
谢谢LS,感觉应该是对的,因为run的时候log窗口里面出现了一堆日期格式的数字。但是不知道为什么,新的那个变量d,显示的是一个奇怪的数字?
二维码

扫码加我 拉你入群

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

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

2010-8-23 15:47:41
复制代码
改成如上就可以了
d就显式成日期的格式了,并且log中不显示
奇怪的数字是日期本来的样子
format成你想要它的样子就可以了
二维码

扫码加我 拉你入群

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

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

2010-8-23 15:57:51
4# soporaeternus

果然可以了!谢谢LS!高手啊!
二维码

扫码加我 拉你入群

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

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

2010-8-25 11:07:18
soporaeternus 发表于 2010-8-23 15:32
复制代码
Using MYD function if the arguments are numeric.

18      data _null_;
19           x=2009;
20           *x='2009';
21           *d=input(compress(x||"1231"),yymmdd8.);
22           d=mdy(12,31,x);
23           put d yymmdd10.;
24           put d yymmddn8.;
25           put d date9.;
26
27   run;

2009-12-31
20091231
31DEC2009
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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