2014-07-10 37 views
0

我有这样的SAS代码中选择部分底部:结合两种不同的时间格式。

,datepart(pertito_time_entry_date) format=weekdate. as b 
, (input(substr(pertito_time_in,1,2) || ":" ||substr(pertito_time_in,3,4), time.)) format=time. as c 
, (input(substr(pertito_time_out,1,2) || ":" ||substr(pertito_time_out,3,4), time.)) format=time. as d 

我需要结合(b和c)和(b和d)然后我需要

sum(24* (bc - bd)) 

让我举一个例如:

b=Wednesday,Jul10,2011 
c=11:00:00 
d=10:00:00 

我需要做的

sum(24*(Jul102011:11:00:00 - Jul102011:10:00:00)) 

我该如何组合和制作和?谢谢!

回答

0

你不需要bc-d永远是足够的,因为日期不能影响事情,如果两次都是相同的。如果您对ca(其它日期),那么你可以使用

dhms(a,0,0,c) - dhms(b,0,0,d) 

这也将在这里工作,但会是多余的。

此外,您的24*可能是错误的;那是24小时吗?时间总是以秒为单位存储在SAS中,所以如果您想要从几秒钟恢复到几天,那将是86400*

如果你的最终目标是与日期b和c和d之间的差别日期时间,然后

dhms(b,0,0,(c-d)) 

会给你(虽然我不知道我会建议,是一个有用的领域)。

+0

乔,当我使用dhms(b,0,0,(c-d))时,给了我很多数字。但我需要Jul102011:11:00:00 - Jul102011:10:00:00。所以它可能是60或1.它给我10位数字? – user3780068

+0

如果你想'c-d'那么就这样做,不要打扰日期/时间位。 – Joe

相关问题