日期和时间的Datediff(24小时)

时间:2013-01-11 08:42:27

标签: sql sql-server tsql

我知道这是一个简单的问题,但我被困住了。我一天一小时地尝试DateDiff,但我希望我的约会可以检测我的时间超过24小时。

例如:

Date1: 20/12/2011
Time1: 9:00

Date2: 21/12/2011
Time2 : 13:00

Days Taken: 1
Time Taken: 28

我想计算天数和小时数,因此1天4小时是我想要的结果。

任何人都可以帮我解决这个问题吗?升值。

3 个答案:

答案 0 :(得分:4)

也许在MODULO的帮助下:

SELECT (
  DATEDIFF(dd,
    CONVERT(datetime,'20/12/2011 09:00:00',104),
    CONVERT(datetime,'21/12/2011 13:00:00',104))
 ) AS [days taken],
(
  DATEDIFF(hh,
    CONVERT(datetime,'20/12/2011 09:00:00',104),
    CONVERT(datetime,'21/12/2011 13:00:00',104))
   % 24
 ) AS [hours taken]

结果:

DAYS TAKEN      HOURS TAKEN
    1                4

DEMO

答案 1 :(得分:2)

在sql-server中;

declare @d1 datetime = '20111220 09:00:00'
declare @d2 datetime = '20111221 13:00:00'

select hours/24 daysTaken, hours%24 hoursTaken
from (
    select datediff(hh,@d1,@d2) hours
) A

--Results
daysTaken hoursTaken
   1          4

答案 2 :(得分:-1)

假设您使用的是SQL Server

Select datediff(hour,date1,date2)/24.0 from table