MySQL में दो डेटासेटाइम के बीच अंतर की गणना करें


157

मैं MySQL में अंतिम लॉग इन समय datetime-type दर्ज कर रहा हूँ । जब उपयोगकर्ता लॉग इन करते हैं, तो मैं अंतिम लॉगिन समय और वर्तमान समय के बीच अंतर प्राप्त करना चाहता हूं (जो मुझे उपयोग करना है NOW())।

मैं इसकी गणना कैसे कर सकता हूं?


जवाबों:


296

उपयोग TIMESTAMPDIFFMySQL समारोह। उदाहरण के लिए, आप उपयोग कर सकते हैं:

SELECT TIMESTAMPDIFF(SECOND, '2012-06-06 13:13:55', '2012-06-06 15:20:18')

आपके मामले में, TIMSTAMPDIFFफ़ंक्शन का तीसरा पैरामीटर वर्तमान लॉगिन समय ( NOW()) होगा। दूसरा पैरामीटर अंतिम लॉगिन समय होगा, जो पहले से ही डेटाबेस में है।


यह अंतिम लॉगिन सही अद्यतन करने के लिए है ?? मैं क्या चाहता हूं कि स्टैकओवरफ्लो में आपका प्रश्न 2s पहले पोस्ट किया गया, 30s पहले, 2 मिनट पहले .. आदि मैं इसी तरह की कार्यक्षमता चाहता हूं। उदाहरण के लिए REQUESTS (आईडी, संदेश, टाइमस्टैम्प) एक तालिका है। स्टोर करते समय टाइमस्टैम्प अब () होगा। जब मैं एक क्वेरी चलाता हूं, तो अनुरोधों से * का चयन करें, उस मूल्य को प्रदर्शित करने के बजाय उसे आईडी, संदेश और कितने समय पहले अनुरोध पोस्ट करना चाहिए था।
देवेश अग्रवाल

1
जबकि एक क्वेरी को निष्पादित कर रहा है चयन करें TIMESTAMPDIFF (SECOND, Now), 'अनुरोधों से lastLoginTime का चयन करें जहां id =' 2 '') .. इसकी वापसी NULL। कोई विचार क्यों ??
देवेश अग्रवाल

अनुरोधों से अंतिम lastogogTime का आउटपुट क्या है जहाँ id = '2' है?
एफएसपी

सेलेक्ट TIMESTAMPDIFF (SECOND, Now), '2012-06-06 08:07:36'); इसे इस्तेमाल करे!
एफएसपी

YE जो काम कर रहा है, लेकिन मुझे टेबल से दूसरा पैरामीटर लाने की जरूरत है। उसे कैसे हासिल किया जाए। वास्तव में मैं नेस्टेड क्वेरी से बचना चाहता हूं। कोई उपाय?
देवेश अग्रवाल

3

मेरे दो तर्क के बारे में सेंट:

वाक्यविन्यास "पुरानी तिथि" है: - "नई तिथि", इसलिए:

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:00', '2018-11-15 15:00:30')

30 देता है,

SELECT TIMESTAMPDIFF(SECOND, '2018-11-15 15:00:55', '2018-11-15 15:00:15')

देता है: -40


2

यदि आपके आरंभ और समाप्ति डेटाइम अलग-अलग दिनों में हैं तो TIMEDIFF का उपयोग करें।

SELECT TIMEDIFF(datetime1,datetime2)

अगर datetime1> datetime2 तब

SELECT TIMEDIFF("2019-02-20 23:46:00","2019-02-19 23:45:00")

देता है: 24:01:00

और डेटाटाइम 1 <डेटाटाइम 2

SELECT TIMEDIFF("2019-02-19 23:45:00","2019-02-20 23:46:00")

देता है: -२४: ०१: ००


ध्यान दें, केवल 839 घंटे तक की तारीखों का सामना कर सकते हैं
कायुस जार्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.