楼主: 一路风景_
3694 4

[问答] 求问SAS里有没有带毫秒的时间函数? [推广有奖]

  • 1关注
  • 0粉丝

本科生

42%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1378 点
帖子
36
精华
0
在线时间
98 小时
注册时间
2015-10-16
最后登录
2019-1-21

楼主
一路风景_ 发表于 2016-12-7 22:46:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如图,这个数据是精确到毫秒的,想要筛选出某一段时间内的数据(比如9:30:00.000~12:00:00.000),应该怎么做呢?
这个时间数据的格式是TIME12.3。
     date               time (HHMMSSXXX)


二维码

扫码加我 拉你入群

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

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

关键词:有没有 time date HMMs IME

沙发
dogmamongo 发表于 2016-12-7 23:03:22
你可以使用HMS
hms(hour,minute,second)
只要数值介于中间 就能筛选
我想应当不致于真的需要精准到毫秒吧
if      hms(9,30,0)<=time<=hms(12,0,0) then output;
这样应该能实现
不过要注意你时间的UTC格式

藤椅
一路风景_ 发表于 2016-12-8 21:58:35
dogmamongo 发表于 2016-12-7 23:03
你可以使用HMS
hms(hour,minute,second)
只要数值介于中间 就能筛选
用了你的方法成功筛选,谢谢!

板凳
mich_ard 发表于 2016-12-9 00:30:38
如果一定要精确到毫秒,也是可以的。有两个办法(其实它们本质上是一样的:SAS比较时间时,都是把时间化作秒进行的)。举例如下:

方法一,

data test1;
input time time12.3;
format time time12.3;
if  hms(9,30,00.010) =<  time =< hms(10,30,00.050);    /*注意hms格式:时分秒用逗号,毫秒用圆点*/
cards;
9:30:00.009
9:30:00.010
10:30:00.049
10:30:00.050
10:30:00.051
;
run;

方法2:把要筛选的时间点化作秒,9,30,00.010=34200.010,10,30,00.050=37800.050。

data test2;
input time time12.3;
format time time12.3;
if  34200.010 =<    time =< 37800.050;
cards;
9:30:00.009
9:30:00.010
10:30:00.049
10:30:00.050
10:30:00.051
;
run;

两者结果一样:

                                      Obs            time

                                       1      9:30:00.010
                                       2     10:30:00.049
                                       3     10:30:00.050

报纸
一路风景_ 发表于 2016-12-10 15:12:42
mich_ard 发表于 2016-12-9 00:30
如果一定要精确到毫秒,也是可以的。有两个办法(虽然它们本质上是一样的:SAS比较时间时,都是把时间化作秒 ...
好方法,原来时间函数里面可以用原点加上毫秒,谢谢你!

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

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