楼主: yyun723
2269 4

sas 日期格式转换???? [推广有奖]

  • 0关注
  • 0粉丝

本科生

98%

还不是VIP/贵宾

-

威望
0
论坛币
23 个
通用积分
1.8583
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
5615 点
帖子
63
精华
0
在线时间
171 小时
注册时间
2012-11-28
最后登录
2024-6-14

楼主
yyun723 发表于 2016-10-20 14:58:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
%let  firstday=.;
%let  secondday=.;
data dat;
set dat(firstobs=20  obs=21);
by descending tradeday;

if _n_=1 then do; call symput("firstday", tradeday); end;
if _n_=2 then do; call symput("secondday", tradeday);end;
run;

%put &firstday;
%put &secondday;

data dat;
set dat;
b=&secondday;

format b yymmdd10.;
a=put(&secondday.,yymmdd10.);
run;

sas小白一个 ,这个问题没搞明白,从数据库读取两个日期到变量里,%put出来的值都是对的,2016-08-05,格式是YYYY-MM-DD,结果后面的data部里b 和a 值变成了1965年6月份的数据了,不知道哪里的问题。。。

二维码

扫码加我 拉你入群

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

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

关键词:格式转换 Second Traded symput ending 格式转换 日期

沙发
一线天56 发表于 2016-10-23 09:47:28
可否上传一下数据集 这样更方便纠错。

藤椅
wang1839 在职认证  发表于 2016-10-23 11:37:49
把千面两个%let delete

板凳
l1i2n3i4n5g 在职认证  发表于 2016-10-25 01:02:51
假如secondday是2016-10-25
b=&secondday=2016-10-25=1981,为1960年1月1日后的第1981天,a也是同理
b="&secondday.";
a=put("&secondday.",yymmdd10.);
这样就好了

报纸
yyun723 发表于 2016-10-27 11:22:42
call symput("secondday",input(tradeday,yymmdd10.));
后来我这样把变量改成数值型的就没问题了。。。不过还不知道为什么字符型的就不行

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 16:37