查找持续时间

时间:2010-01-19 07:27:24

标签: sql sql-server tsql datetime

我有两个日期字段。他们是

1.2008-06-09 10:18:00.000

2.2008-06-10 11:20:00.000

我必须以格式 -

找到上述两个日期之间的差异

“24小时:2分钟:0秒”

是否有任何方法可以在sql 2000中获得此结果?

1 个答案:

答案 0 :(得分:2)

SQL Server 2000中没有奇特的答案......

DECLARE @d1 datetime, @d2 datetime 

SELECT @d1 = '2008-06-09 10:18:00.000', @d2 = '2008-06-10 11:20:00.000'

SELECT
    CAST(DATEDIFF(hour, @d1, @d2) AS varchar(30)) + ' hours, ' +
    CAST(DATEDIFF(minute, @d1, @d2) % 60 AS varchar(30))  + ' minutes, ' +
    CAST(DATEDIFF(second, @d1, @d2) % 3600 % 60 AS varchar(30))  + ' seconds'

需要使用模数来删除已计算的小时和分钟