2012-06-07 14 views
10

मैं 2 उपयोगकर्ताओं के बीच समय अंतर पाने की कोशिश कर रहा हूं, मुझे घंटों में अंतर की आवश्यकता है।2 तिथियों के बीच समय अंतर (घंटों में) कैसे प्राप्त करें

मैंने DATEDIFF फ़ंक्शन का उपयोग करने का प्रयास किया लेकिन यह गलत है।

SELECT DATEDIFF(*, 
(SELECT max(u1.time_c) 
FROM users u) 
, 
(SELECT max(u2.time_c) 
FROM users u2) 
+2

आपका क्या मतलब है "* 2 उपयोगकर्ताओं के बीच समय अंतर *"? क्या आप उनके टाइमज़ोन का जिक्र कर रहे हैं? या कुछ और? आप कहते हैं कि आपका मौजूदा कोड "* गलत * है" लेकिन यह मत कहें कि इसमें क्या गलत है। क्या हमें अनुमान लगाना चाहिए? (मेरा अनुमान होगा कि ['DATEDIFF()'] (http://dev.mysql.com/doc/en/date-and-time-functions.html#function_datediff) फ़ंक्शन * दिनों * में कोई अंतर नहीं देता है, नहीं * घंटे *; और केवल दो तर्क लेते हैं, तीन नहीं - लेकिन क्या यह सब * गलत है?)। – eggyal

+0

यदि u.1 2 दिन पहले बनाया गया था और u.2 कल बनाया गया था तो अंतर 24 घंटे है उदाहरण के लिए – Ofer

+0

स्पष्ट नहीं है। अधिक जानकारी जोड़ें। – Devart

उत्तर

3

आपके पास अपने चयन कथन में from खंड होना चाहिए। कुछ की तरह

Select date1 - date2 from dual 

DATE1 और DATE2 बीच दिनों की संख्या देता है।

आप घंटों की संख्या चाहते हैं:

Select (date1 - date2)*24 from dual; 

(यह केवल ओरेकल के लिए है)

+0

आपको कौन सी इकाई उत्तर मिलती है? – Ofer

+0

मुझे आपके प्रश्न को समझ में नहीं आता है, लेकिन यदि आप परिणाम के प्रकार के बारे में पूछते हैं, तो परिणाम एक फ़्लोटिंग पॉइंट नंबर है, जो पहली क्वेरी में दिनों की संख्या का प्रतिनिधित्व करता है, और दूसरे में घंटों की संख्या का प्रतिनिधित्व करता है। उदाहरण के लिए, 0.5 दिनों का मतलब 12 घंटे है। एक और उदाहरण: 0.2 घंटे = 0.2 * 60 मिनट = 12 मिनट –

+0

यदि दिनांक अंतर शून्य है तो क्या होता है? घंटे कैसे मिल सकता है? इस मामले में – Sadikhasan

14

से MySQL DATEDIFF docs:

Only the date parts of the values are used in the calculation. 

आप TIMEDIFF

को देखने के लिए यह आपको समय में अंतर में घंटों की संख्या दे देंगे चाहते हैं

यहाँ मेरी कोड है (मान लें कि आपका फ़ील्ड DATETIME या कुछ समान हैं)

SELECT HOUR(TIMEDIFF( 
    (SELECT max(u1.time_c) FROM users u), 
    (SELECT max(u2.time_c) FROM users u2) 
))