Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में TIMESTAMPDIFF का उपयोग करके दो DATETIME मानों के बीच अंतर ज्ञात करें

MySQL में दो DATETIME मानों के बीच अंतर की गणना

MySQL में TIMESTAMPDIFF() फ़ंक्शन दो डेटाइम मानों के बीच निर्दिष्ट इकाई (सेकंड, मिनट, घंटे, दिन, आदि) में अंतर लौटाता है। DATEDIFF() के विपरीत जो केवल दिन लौटाता है, TIMESTAMPDIFF लचीला है।

टेबल बनाना

mysql> CREATE TABLE DemoTable (
    -> DueDatetime1 DATETIME,
    -> DueDatetime2 DATETIME
    -> );
Query OK, 0 rows affected (0.86 sec)

डेटा डालना

mysql> INSERT INTO DemoTable VALUES ('2019-10-26 19:49:00', '2019-10-26 17:49:00');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES ('2019-10-26 08:00:00', '2019-10-26 13:00:00');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES ('2019-10-26 06:50:00', '2019-10-26 12:50:00');
Query OK, 1 row affected (0.68 sec)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+---------------------+---------------------+
| DueDatetime1        | DueDatetime2        |
+---------------------+---------------------+
| 2019-10-26 19:49:00 | 2019-10-26 17:49:00 |
| 2019-10-26 08:00:00 | 2019-10-26 13:00:00 |
| 2019-10-26 06:50:00 | 2019-10-26 12:50:00 |
+---------------------+---------------------+
3 rows in set (0.00 sec)

मिनटों में अंतर की गणना (निरपेक्ष मान)

mysql> SELECT ABS(TIMESTAMPDIFF(MINUTE, DueDatetime1, DueDatetime2)) 
    -> FROM DemoTable;

परिणाम

+------------------------------------------------------+
| abs(timestampdiff(minute,DueDatetime1,DueDatetime2)) |
+------------------------------------------------------+
|                                                  120 |
|                                                  300 |
|                                                  360 |
+------------------------------------------------------+
3 rows in set (0.00 sec)

TIMESTAMPDIFF सिंटैक्स

TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)

परिणाम = datetime_expr2 - datetime_expr1 (दूसरा घटा पहला)

समर्थित इकाइयाँ (unit)

इकाईविवरण
MICROSECONDमाइक्रोसेकंड
SECONDसेकंड
MINUTEमिनट
HOURघंटे
DAYदिन
WEEKसप्ताह
MONTHमहीने
QUARTERतिमाही
YEARवर्ष

उदाहरण: विभिन्न इकाइयों में अंतर

SELECT 
    TIMESTAMPDIFF(SECOND, dt1, dt2) AS Seconds,
    TIMESTAMPDIFF(MINUTE, dt1, dt2) AS Minutes,
    TIMESTAMPDIFF(HOUR, dt1, dt2) AS Hours,
    TIMESTAMPDIFF(DAY, dt1, dt2) AS Days
FROM DemoTable;

ABS() का उपयोग क्यों?

TIMESTAMPDIFF ऋणात्मक मान लौटा सकता है यदि पहला डेटाइम दूसरे से बाद का है। ABS() निरपेक्ष मान सुनिश्चित करता है।

DATEDIFF vs TIMESTAMPDIFF

फ़ंक्शनलौटाता हैइकाइयाँतर्क क्रम
DATEDIFF(d1, d2)दिन (पूर्णांक)केवल दिनd1 - d2
TIMESTAMPDIFF(u, d1, d2)निर्दिष्ट इकाई में अंतरकईd2 - d1

नोट: तर्क क्रम अलग है!

मानव-पठनीय अवधि प्रारूप

SELECT 
    CONCAT(
        TIMESTAMPDIFF(HOUR, dt1, dt2), 'h ',
        TIMESTAMPDIFF(MINUTE, dt1, dt2) % 60, 'm ',
        TIMESTAMPDIFF(SECOND, dt1, dt2) % 60, 's'
    ) AS Duration
FROM DemoTable;
  1. - MySQL में TIMESTAMPDIFF से दो दिनांकों के बीच महीनों का अंतर निकालें

    MySQL का TIMESTAMPDIFF() फ़ंक्शन दो दिनांक/समय मानों के बीच निर्दिष्ट इकाई में अंतर की गणना करता है। सिंटैक्स TIMESTAMPDIFF(इकाई, दिनांक1, दिनांक2) इकाइयां: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR उदाहरण: महीनों में अंतर 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO De

  1. - C# में दो DateTime के बीच मिलीसेकंड में अंतर

    मान लीजिए निम्न हमारी तारीखों के लिए दो DateTime ऑब्जेक्ट हैं: DateTime date1 = new DateTime(2018, 8, 11, 08, 15, 20); DateTime date2 = new DateTime(2018, 8, 11, 11, 14, 25); TimeSpan का उपयोग करके दोनों तारीखों के बीच अंतर ढूंढें: TimeSpan ts = date2 - date1; अब मिलीसेकंड प्राप्त करने के लिए निम्न

  1. - C# में दो तारीखों के बीच अंतर निकालना

    C# में दो DateTime मानों के बीच अंतर निकालने के लिए Subtract() मेथड या घटाव ऑपरेटर (-) का उपयोग किया जाता है, जो एक TimeSpan ऑब्जेक्ट लौटाता है। उदाहरण using System; public class Demo { public static void Main() { // दो तारीखें सेट करें DateTime date1 = new DateTime(2018,