2011-10-17 47 views
8

我有一個查詢,使得查詢的結果是:我怎樣才能得到多個日期時間值的總和?

SELECT CONVERT(VARCHAR(8),(MAX(END_TIME)-MIN(START_TIME)),108) as DURATION WHERE ... GROUP BY TITLE 

對於每個標題,DURATION是不同的。查詢返回:

DURATION 
00:16:14 
00:00:00 
00:01:30 
00:16:25 
00:09:34 
00:00:01 
01:04:04 
00:00:28 
00:00:12 
00:06:11 
00:26:38 
00:31:44 
00:02:16 
00:03:22 
00:09:39 
00:03:20 
00:03:43 
00:09:33 
00:08:05 
00:06:58 
00:25:29 
01:55:30 
00:03:02 
00:00:18 
00:06:09 
00:07:26 
00:25:43 
00:00:16 
00:26:58 
02:09:38 
00:57:56 
00:00:45 
00:00:00 
00:07:24 
00:00:54 
00:00:27 
00:01:28 
00:07:14 
00:00:19 
01:43:25 
00:58:23 
00:02:29 
02:19:48 
00:09:06 
05:12:15 
02:27:15 
00:56:47 
00:02:24 

我需要這些值的總和;我怎麼才能得到它?

回答

14

轉換分鐘到秒

SUM()

轉換回分鐘


下面會給你秒的總和:

SET @Seconds = SELECT SUM(DATEDIFF(SECOND, [START_TIME], [END_TIME])) 

那麼下面將其變成datetime對象:

select convert(varchar(8), dateadd(second, @Seconds, 0), 108) 

或者作爲1個查詢:

SELECT convert(varchar(8), dateadd(second, SUM(DATEDIFF(SECOND, [START_TIME], [END_TIME])), 0), 108) 
1

你不能總結時間。你應該做的是使用DateDiff函數,在你的開始和結束時間使用秒參數。這將返回一個整數數據類型,您可以在其上。完成後,將其轉換爲DateTime以將其格式化爲小時:分鐘:秒。

相關問題