2016-04-29 3 views
5

मैं अपनी मेज पर एक प्रश्न चलाता हूं जो इसे आरोही क्रम में सबसे पुराना समय देता है (नवीनतम से सबसे पुराना)। जैसा कि मैंने एक लाइन ORDER BY timestamp में रखा है।एसक्यूएल में टाइमस्टैम्प के बीच अंतर कैसे वापस करें?

मैं अपने परिणामों की जरूरत है "दिन लिया" जो टाइम स्टांप, यानी (टाइमस्टैम्प 2 - वह टाइमस्टैम्प 1) में से प्रत्येक के बीच का अंतर होता है एक स्तंभ कहा जाता है, (टाइमस्टैम्प 3 - वह टाइमस्टैम्प 2), ​​(टाइमस्टैम्प 4 - वह टाइमस्टैम्प 3) और इसी तरह। एसक्यूएल का उपयोग करके मैं यह कैसे करूं?

value timestamp    Days Taken 
2  2016-03-16 05:11:40 - 
3  2016-03-18 03:46:42 ? 
4  2016-03-18 04:09:44 ? 
5  2016-03-21 04:01:46 ? 
6  2016-03-22 04:38:17 ? 

मैं क्योंकि यह एक स्ट्रिंग और नहीं किसी पूर्णांक जिसके कारण this मेरे लिए काम नहीं करता है के रूप में परिभाषित किया गया है एक सूचकांक के रूप में स्तंभ value उपयोग करने में असमर्थ हूँ। लिया गया दिन वह मान है जिसे मैं गणना करना चाहता हूं।

जोड़ने के लिए संपादित: मैं वर्टिका के लिए डीबी विज़ुअलाइज़र चला रहा हूं जो ऑन क्लॉज में सबक्वायरीज़ का समर्थन नहीं करता है।

+0

मैनुअल पढ़ा जाए तो यह दिखाया है होगा [ 'DateDiff()'] (http://dev.mysql.com/doc/refman/5.7/en /date-and-time-functions.html#function_datediff) फ़ंक्शन। – tadman

+0

हां, मुझे स्पष्ट होना चाहिए था। मुझे फ़ंक्शन के बारे में पता है, लेकिन मुझे यकीन नहीं है कि एक ही क्वेरी के एकाधिक पंक्तियों के बीच 'DATEDIFF() 'कैसे करें। एक आत्म-शामिल हो? – geekchic

+0

आपकी स्कीमा कैसी दिखती है, तो? अपना प्रश्न संपादित करें और जोड़ें कि यदि आप कर सकते हैं, तो यह वही करेगा जो आप बहुत स्पष्ट करना चाहते हैं। – tadman

उत्तर

3

इन पंक्तियों के साथ प्रयास करें कुछ:

select datediff(dd, a.timestamp, b.timestamp) 
    from #Table a 
    join #Table b on a.timeStamp = (select max(c.timeStamp) 
    from #Table c where c.timeStamp < b.timeStamp) 
+0

आपके पास 'DATEDIFF() 'अजीब रूप से' के लिए तीन तर्क हैं। – tadman

+0

मैंने इसके संस्करणों का प्रयास किया है, लेकिन मुझे यह अजीब त्रुटि मिलती है 'ऑन क्लॉज में सबक्वायरी समर्थित नहीं हैं'। – geekchic

+0

@tadman और हाँ, इसकी अनुमति है :) यह फ़ंक्शन को दिन/सप्ताह/घंटे/मिनटों में अंतर वापस करने के लिए कहता है। – geekchic

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