2011-10-17 5 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() सेकंड

निम्नलिखित आप सेकंड के योग दे देंगे मिनट


वापस करने के लिए कनवर्ट करें एकमें बदल जाता हैवस्तु:

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 फ़ंक्शन का उपयोग करें। यह एक पूर्णांक डेटा प्रकार लौटाएगा जिसे आप एसयूएम पर कर सकते हैं। जब आप पूरा कर लेंगे, इसे डेटटाइम में इसे घंटों की तरह प्रारूपित करने के लिए रूपांतरित करें: मिनट: सेकंड।

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

उसके बाद निम्न:

संबंधित मुद्दे