" मेरे पास टाइमस्टैम्प के साथ एक टेबल है, और मैं इस तालिका को घंटे-अंतराल अंतराल में विभाजित करना चाहता हूं, अभी से चल रहा हूं और जा रहा हूं कुछ घंटों के पीछे। मैं टी-एसक्यूएल DATEDIFF फ़ंक्शन के साथ आवश्यक परिणामों को प्राप्त करने में असमर्थ हूं, क्योंकि यह दो तारीखों के बीच 12 मिनट गुजरने की संख्या की गणना करता है - मुझे लगता है कि उन्हें कितनी बार हाथ हाथ पास करता है, जहां यह अब है टाइमस्टैम्प और अब के बीच।टी-एसक्यूएल डेटडिफ - "पूर्ण घंटे पहले" से विभाजन "
क्या टी-एसक्यूएल में ऐसा करने का एक सीधा तरीका है?
अद्यतन: टिप्पणियों के जवाब में, यहाँ कुछ नमूना डेटा, क्वेरी मैं वर्तमान में उपयोग कर रहा हूँ और परिणाम मैं हो रही है, साथ ही परिणाम मैं चाहता है।
नमूना डेटा:
TimeStamp
*********
2010-07-20 11:00:00.000
2010-07-20 10:44:00.000
2010-07-20 10:14:00.000
2010-07-20 11:00:00.000
2010-07-20 11:40:00.000
2010-07-20 10:16:00.000
2010-07-20 13:00:00.000
2010-07-20 12:58:00.000
वर्तमान क्वेरी:
SELECT TimeStamp, DATEDIFF(HOUR, TimeStamp, CURRENT_TIMESTAMP) AS Diff FROM ...
परिणाम:
TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 2 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 3 2010-07-20 11:00:00.000 2 2010-07-20 11:40:00.000 2 2010-07-20 10:16:00.000 3 2010-07-20 13:00:00.000 0 2010-07-20 12:58:00.000 1
क्या मैं नहीं बल्कि होगा:
-- The time is now, for the sake of the example, 13:40 TimeStamp Diff ********* **** 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 10:44:00.000 3 2010-07-20 10:14:00.000 4 -- +1 2010-07-20 11:00:00.000 3 -- +1 2010-07-20 11:40:00.000 2 or 3 -- edge case, I don't really care which 2010-07-20 10:16:00.000 4 -- +1 2010-07-20 13:00:00.000 1 -- +1 2010-07-20 12:58:00.000 1
मैंने उन परिणामों को चिह्नित किया है जो +1
के साथ बदल गए हैं। इसके अलावा, मैं वास्तव में परवाह नहीं है अगर यह 0 से इंडैक्स या 1 से इंडैक्स, लेकिन मूल रूप से, अगर यह अब 13:40 मैं
12:40-13:40 1 (or 0) 11:40-12:40 2 (or 1) 10:40-11:40 3 (or 2) 09:40-10:40 4 (or 3)
आप व्याख्या कर सकते हैं कि साथ इनपुट डेटा और उम्मीद उत्पादन के साथ प्रश्न, आपने लिखा है? – shahkalpesh
मिनटों में DATEDIFF फिर 60 से पूर्णांक विभाजन? –