आपने देखा होगा कि MySQL में एक TIMEDIFF()
है फ़ंक्शन और एक SUBTIME()
समारोह। और आपने देखा होगा कि कई मामलों में, वे दोनों एक ही परिणाम देते हैं। तो आप सोच रहे होंगे कि इन दोनों फंक्शन में क्या अंतर है?
आइए जानें।
सिंटैक्स
आइए पहले प्रत्येक फ़ंक्शन के सिंटैक्स को देखें।
सबटाइम ()
SUBTIME(expr1,expr2)
जहां expr1
एक समय या डेटाटाइम अभिव्यक्ति है, और expr2
एक समय अभिव्यक्ति है।
TIMEDIFF ()
TIMEDIFF(expr1,expr2)
जहां expr1
और expr2
समय या दिनांक और समय के भाव हैं, लेकिन दोनों एक ही प्रकार के होने चाहिए।
अंतर
तो ये है अंतर:
SUBTIME()
का उपयोग करते समय , दूसरा तर्क एक समय अभिव्यक्ति होना चाहिए ।TIMEDIFF()
का उपयोग करते समय दूसरा तर्क या तो समय या दिनांक और समय का व्यंजक हो सकता है, लेकिन किसी भी स्थिति में, यह पहले व्यंजक के समान प्रकार का होना चाहिए ।
उदाहरण 1 - दोनों तर्क 'समय' मान हैं
यहां दोनों फ़ंक्शन की तुलना की गई है, जहां दोनों तर्क समय मान हैं।
SELECT TIMEDIFF('11:35:25', '10:35:25') AS 'TIMEDIFF', SUBTIME('11:35:25', '10:35:25') AS 'SUBTIME';
परिणाम:
+----------+----------+ | TIMEDIFF | SUBTIME | +----------+----------+ | 01:00:00 | 01:00:00 | +----------+----------+
जैसा कि अपेक्षित था, दोनों फ़ंक्शन एक ही परिणाम देते हैं।
उदाहरण 2 - दोनों तर्क 'डेटाटाइम' मान हैं
यहां दोनों फ़ंक्शन की तुलना की गई है, जहां दोनों तर्क डेटाटाइम मान हैं।
SELECT TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') AS 'TIMEDIFF', SUBTIME('2021-02-01 10:35:25', '2021-01-01 10:35:25') AS 'SUBTIME';
परिणाम:
+-----------+---------+ | TIMEDIFF | SUBTIME | +-----------+---------+ | 744:00:00 | NULL | +-----------+---------+
इस मामले में, SUBTIME()
एक शून्य मान लौटाया क्योंकि इसका दूसरा तर्क समय मान नहीं था (यह एक डेटाटाइम मान था)।
उदाहरण 3 - पहला तर्क 'डेटाटाइम' है, दूसरा 'समय' है
यहां, पहला तर्क डेटाटाइम मान है। दूसरा तर्क एक समय मान है।
SELECT TIMEDIFF('2021-02-01 10:35:25', '09:35:25') AS 'TIMEDIFF', SUBTIME('2021-02-01 10:35:25', '09:35:25') AS 'SUBTIME';
परिणाम:
+----------+---------------------+ | TIMEDIFF | SUBTIME | +----------+---------------------+ | NULL | 2021-02-01 01:00:00 | +----------+---------------------+
इस मामले में, TIMEDIFF()
एक शून्य मान लौटाया क्योंकि दोनों तर्क एक अलग प्रकार के थे।
उदाहरण 4 - पहला तर्क 'समय' है, दूसरा 'डेटाटाइम' है
और यहाँ, हम इसे चारों ओर स्वैप करते हैं। पहला तर्क एक समय मान है। दूसरा तर्क डेटाटाइम मान है।
SELECT TIMEDIFF('09:35:25', '2021-01-01 10:35:25') AS 'TIMEDIFF', SUBTIME('09:35:25', '2021-01-01 10:35:25') AS 'SUBTIME';
परिणाम:
+----------+---------+ | TIMEDIFF | SUBTIME | +----------+---------+ | NULL | NULL | +----------+---------+
इस मामले में:
TIMEDIFF()
एक शून्य मान लौटाया क्योंकि दोनों तर्क एक अलग प्रकार के थे।SUBTIME()
एक शून्य मान लौटाया क्योंकि यह केवल अपने दूसरे तर्क के लिए एक समय मान स्वीकार करता है।