2010-01-19 111 views
0

我有times.They兩個日期字段查找持續時間

1.2008-06-09 10:18:00.000

2.2008-06-10 11:20:00.000

我有找到格式上述兩個日期之間的差值 -

「24小時:2分:0秒」

有什麼方法來得到這樣的結果在SQL 2000?

+0

如果它不能在25個小時? – gbn 2010-01-19 07:47:08

回答

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' 

需要的modulos除去小時和分鐘已經計算

+0

我認爲你需要考慮交叉邊界,當@ d2小於@ @ d1時,小單位較少。例如,將'@ d2'中的分鐘數改爲15並檢查結果。 – 2011-08-16 18:58:40

+1

這些更改應該有效:CAST(DATEDIFF(second,@ d1,@ d2)/ 60%60(60)60 'varchar(30))+'minutes''+ CAST(DATEDIFF(second,@ d1,@ d2)%3600%60 AS varchar(30))+'seconds'' – 2011-08-16 19:01:38