楼主: yyun723
1980 4

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

  • 0关注
  • 0粉丝

本科生

98%

还不是VIP/贵宾

-

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

+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
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 09:12