楼主: 冰川断层
11745 15

SAS怎么把‘2011-01-2’格式的日期转换成02JAN2012 [推广有奖]

  • 0关注
  • 0粉丝

高中生

72%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
202 点
帖子
19
精华
0
在线时间
40 小时
注册时间
2015-4-3
最后登录
2017-7-1

楼主
冰川断层 发表于 2016-10-10 21:45:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求救:试过很多格式都不行,下面是尝试的程序,运行错误?怎么办。。。。。
data _null_;
a='2011-01-01';
b=input(a,date9.);
format b date9.;
put b=;
run;



二维码

扫码加我 拉你入群

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

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

关键词:日期转换 Jan format FORMA Input 格式转换 null

回帖推荐

l1i2n3i4n5g 发表于11楼  查看完整内容

year本来就是best12.格式,year2和year本质上是一样的。 format year2 date.; 把year2看成是距离1960年1月1日后的第year2(1980)天了,也就是1965年的某一天

l1i2n3i4n5g 发表于2楼  查看完整内容

data _NULL_; a='2011-01-01'; b=input(a,yymmdd10.); format b date9.; put b; run;

沙发
l1i2n3i4n5g 在职认证  发表于 2016-10-11 00:22:52
data _NULL_;
a='2011-01-01';
b=input(a,yymmdd10.);
format b date9.;
put b;
run;

藤椅
冰川断层 发表于 2016-10-11 09:28:09
l1i2n3i4n5g 发表于 2016-10-11 00:22
data _NULL_;
a='2011-01-01';
b=input(a,yymmdd10.);
谢谢,大侠。太棒啦。。。。
,能不能告诉我一下为什么写成这样:b=input(a,yymmdd10.);

板凳
l1i2n3i4n5g 在职认证  发表于 2016-10-11 09:51:34
冰川断层 发表于 2016-10-11 09:28
谢谢,大侠。太棒啦。。。。
,能不能告诉我一下为什么写成这样:b=input(a,yymmdd10.);
a='2011-01-01';
/*是yymmdd10.的形式,要用b=input(a,yymmdd10.);*/
/*如果*/
a='01JAN2011';
/*就要用b=input(a,date9.);*/
/*以上2个a都是字符型!*/
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
prince315 + 20 + 1 + 1 + 1 精彩帖子
DriftKingHan + 1 + 1 + 1 + 1 观点有启发

总评分: 论坛币 + 21  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

报纸
冰川断层 发表于 2016-10-11 09:58:13
l1i2n3i4n5g 发表于 2016-10-11 09:51
a='2011-01-01';
/*是yymmdd10.的形式,要用b=input(a,yymmdd10.);*/
/*如果*/
也就是说input函数,后面的那项是 输入日期的格式,是不?

我不是很清楚input 的用法。下面是在网上搜的,也没看懂
(一)字符转换:

1)字符型转换成数值型

Numvar=INPUT(source,informat)

2)数值型转换成字符型

Chavar=PUT(source,format)

还有,我想问你那个2011-01-2不是数值型日期么,它可以比较大小的哦

地板
l1i2n3i4n5g 在职认证  发表于 2016-10-11 10:17:32
冰川断层 发表于 2016-10-11 09:58
也就是说input函数,后面的那项是 输入日期的格式,是不?

我不是很清楚input 的用法。下面是在网上搜 ...
a是字符型,正因为如此所以要用input函数转换成数值型日期。

7
冰川断层 发表于 2016-10-11 17:27:13
l1i2n3i4n5g 发表于 2016-10-11 10:17
a是字符型,正因为如此所以要用input函数转换成数值型日期。
哦,明白啦。。。。。谢谢你,那么有耐心回答我的问题。

8
冰川断层 发表于 2016-10-26 16:50:56
l1i2n3i4n5g 发表于 2016-10-11 10:17
a是字符型,正因为如此所以要用input函数转换成数值型日期。
这两天又被日期转换给困住啦[sweat][sweat],不知道你有没有时间再帮我看下。。。数据集coal
ObsyearGDP_China_realcoal_china
119803713.96.1
219813908.516.06
319824262.626.41
419834725.116.87
519845442.387.5那个日期year的格式是best12. 数值型。
我用它做指数平滑esm,一直报错。然后进行各种转换,竟然莫名其妙的全变成了1965年[sweat]。
代码:
proc esm data=coal out=a;
id year interval=year;
/* id 为日期,interval=为时间间隔  */
forecast coal_china/model=simple;
/* 预测coal_china*/
run;

error:  检查 INTERVAL=YEAR 对该数据集来说是否正确,以及 ID 变量
       year 是否包含正确标识观测的 SAS 日期或日期时间值。










9
l1i2n3i4n5g 在职认证  发表于 2016-10-26 22:17:55
冰川断层 发表于 2016-10-26 16:50
这两天又被日期转换给困住啦,不知道你有没有时间再帮我看下。。。数据集coal
那个 ...
比如2016-10-26,你可能什么地方转换格式的时候让他变成减法运算了

10
冰川断层 发表于 2016-10-27 17:01:09
l1i2n3i4n5g 发表于 2016-10-26 22:17
比如2016-10-26,你可能什么地方转换格式的时候让他变成减法运算了
数据 coal.zip (1.49 KB) 本附件包括:
  • coal.sas7bdat
,这是原数据,不知道你能不能打开。。。日期都是年份 像1980这样,我给你截啦个图;
coal.jpg type.jpg

失败的代码:
data coal2;
set coal;
year2=input(year,best12.);
format year2 date.;
run;

coal2.jpg

这是运行的 失败数据也给贴来啦。

obs

year GDP_china_real coal_china year2
1 1980 3713.96.1 1965
2 1981 3908.51 6.06 1965
3 1982 4262.62 6.41 1965
4 1983 4725.11 6.87 1965
5 1984 5442.38 7.5 1965







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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 05:59