楼主: nomad5
2145 5

[原创博文] 时间变量的显示 [推广有奖]

  • 0关注
  • 2粉丝

硕士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
94 个
通用积分
1.0000
学术水平
13 点
热心指数
13 点
信用等级
11 点
经验
1898 点
帖子
90
精华
0
在线时间
114 小时
注册时间
2010-12-18
最后登录
2022-5-2

楼主
nomad5 发表于 2012-2-13 15:55:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一个时间变量a,
format a time.;
这样显示的是69:03:00
如何定义format,让它显示的是21:03:00。
但是值不变。
二维码

扫码加我 拉你入群

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

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

关键词:时间变量 format FORMA form time 如何

沙发
wh_wing 发表于 2012-2-13 16:19:11
楼主
请问69:03:00为什么会有个6?是0吗?

藤椅
nomad5 发表于 2012-2-13 16:26:05
比如a=21:03:00
条件需要增加2天的时间
所以b=a+48*60*60
这样b显示的就是69:03:00
我需要让b的值是69:03:00的值,但是显示的是21:03:00

板凳
wh_wing 发表于 2012-2-13 16:30:43
这样行么?
  1. data a;
  2. input t time.;
  3. cards;
  4. 69:03:01
  5. 08:04:12
  6. ;
  7. data b;
  8. set a;
  9. t=t-int(t/(24*60*60))*24*60*60;
  10. format t time8.;
  11. run;
  12. proc print data=b;
  13. run;
复制代码

报纸
zhangzachary 发表于 2012-2-13 17:31:56
我没有找到合适的formats可以直接显示,所以使用楼上提供的修改原始值的方法,或者当你的数据集不大,而且不经常更新的话,一定要在不改变b值情况下显示成24小时制,以下code也许可以提供一些帮助:
  1. data a;
  2. a="69:03:00";
  3. b=input(a.time.);
  4. run;

  5. data fmt_a;
  6. keep start label fmtname;
  7. retain fmtname "fmta";
  8. set a;
  9. label=put(mod(b,86400),time.);
  10. start=b;
  11. run;
  12. proc format cntlin=fmt_a;
  13. run;
  14. data aa;
  15. format b fmta.;
  16. set a;
  17. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

地板
jingju11 发表于 2012-2-14 04:06:22
  1. data _null_;
  2.    a ='21:03:00't +48*3600;
  3.    put a=/ a =tod. /a =time8.;
  4. run;
复制代码
jingju
已有 3 人评分学术水平 热心指数 信用等级 收起 理由
nomad5 + 1 + 1 + 1 观点很好 谢谢
zhangzachary + 1 + 1 + 1 精彩帖子
hopewell + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

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

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