提问人:brittanne0113 提问时间:11/7/2023 最后编辑:Stu Sztukowskibrittanne0113 更新时间:11/7/2023 访问量:39
如何在SAS中计算两个24小时时间之间的时差?
How to calculate the time difference between two 24 hour times in SAS?
问:
我有四个变量:DATE1、DATE1SLEEPTIME、DATE2、DATE2WAKETIME。时间变量具有 TIME。格式。我正在尝试计算两个 24 小时时间之间的时差 (DURATION),但我没有得到正确的答案。
供参考:
DATE1=10/22/2019
DATE2=10/23/2019
DATE1SLEEPTIME=20:50:00
DATE2WAKETIME=5:00:00
我试过了这个:
duration=INTCK('minute',DATE1SLEEPTIME,DATE2WAKETIME)
此代码导致 duration=0:15
我也试过了
duration=mod(24+(DATE1SLEEPTIME-DATE2WAKETIME)/3600,24)
此代码导致 duration=0:00:16。
这些都不正确。正确答案应该在 530(分钟)左右。
答:
2赞
Stu Sztukowski
11/7/2023
#1
将日期和时间转换为日期时间,然后与参数一起使用。这将计算两个日期时间之间的分钟数。intck
dtminute
data want;
date1 = '22OCT2019'd;
date2 = '23OCT2019'd;
date1sleeptime = '20:50:00't;
date2waketime = '5:00:00't;
date1datetime = dhms(date1, hour(date1sleeptime), minute(date1sleeptime), 0);
date2datetime = dhms(date2, hour(date2waketime), minute(date2waketime), 0);
duration = intck('dtminute', date1datetime, date2datetime);
run;
duration
490
评论
1赞
Tom
11/7/2023
或者只需减去两个日期时间值并除以 60,因为一分钟内有 60 秒。
0赞
whymath
11/8/2023
或者用它来使其更紧凑。date1datetime = dhms(date1,0,0,date1sleeptime);
评论