SAS中如何计算两个24小时时间之间的时差?

问题描述 投票:0回答:1

我有四个变量: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)

此代码导致持续时间=0:15

我也尝试过

duration=mod(24+(DATE1SLEEPTIME-DATE2WAKETIME)/3600,24)

此代码导致持续时间=0:00:16。

这些都不正确。正确答案应该是530(分钟)左右。

date datetime time sas
1个回答
0
投票

将日期和时间转换为日期时间,然后将

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
© www.soinside.com 2019 - 2024. All rights reserved.