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

MySQL में अलग-अलग कॉलम के समय मानों का अंतर कैसे प्राप्त करें?

MySQL में TIMEDIFF() और TIME_FORMAT() का उपयोग करके दो DATETIME कॉलम का समय अंतर निकालना

दो DATETIME या TIME कॉलम के बीच का अंतर निकालने के लिए TIMEDIFF() फ़ंक्शन का उपयोग करें, और TIME_FORMAT() से मनचाहे प्रारूप में प्रदर्शित करें।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना

mysql> CREATE TABLE DemoTable624 (
    PunchIn DATETIME,
    PunchOut DATETIME
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable624 VALUES
('2019-07-14 12:10:00', '2019-07-14 12:50:00'),
('2019-07-14 11:00:00', '2019-07-14 11:30:00');

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

mysql> SELECT * FROM DemoTable624;

आउटपुट:

+---------------------+---------------------+
| PunchIn             | PunchOut            |
+---------------------+---------------------+
| 2019-07-14 12:10:00 | 2019-07-14 12:50:00 |
| 2019-07-14 11:00:00 | 2019-07-14 11:30:00 |
+---------------------+---------------------+
2 rows in set (0.00 sec)

समय अंतर प्राप्त करना (फॉर्मेट के साथ)

mysql> SELECT TIME_FORMAT(TIMEDIFF(PunchIn, PunchOut), '%H hrs, %i min.') 
FROM DemoTable624;

आउटपुट:

+-----------------------------------------------------------+
| TIME_FORMAT(TIMEDIFF(PunchIn, PunchOut), '%H hrs, %i min.') |
+-----------------------------------------------------------+
| -00 hrs, 40 min.                                          |
| -00 hrs, 30 min.                                          |
+-----------------------------------------------------------+
2 rows in set (0.00 sec)

⚠️ महत्वपूर्ण नोट: TIMEDIFF(PunchIn, PunchOut) = PunchIn - PunchOut करता है। चूंकि PunchIn < PunchOut है, परिणाम ऋणात्मक है।

सही क्रम (धनात्मक अंतर के लिए)

SELECT TIME_FORMAT(TIMEDIFF(PunchOut, PunchIn), '%H hrs, %i min.') AS Duration
FROM DemoTable624;

आउटपुट:

+------------------+
| Duration         |
+------------------+
| 00 hrs, 40 min.  |
| 00 hrs, 30 min.  |
+------------------+

TIMEDIFF वाक्यविन्यास

TIMEDIFF(time1, time2)  -- time1 - time2 लौटाता है (TIME टाइप)

TIME_FORMAT विशिष्टकर्ता

विशिष्टकर्ताविवरण
%Hघंटा (00-23)
%hघंटा (01-12)
%iमिनट (00-59)
%sसेकंड (00-59)
%fमाइक्रोसेकंड (000000-999999)
%pAM/PM

अन्य उपयोगी फ़ंक्शन

-- सेकंड में अंतर
SELECT TIMESTAMPDIFF(SECOND, PunchIn, PunchOut) AS seconds_diff FROM DemoTable624;

-- मिनट में अंतर
SELECT TIMESTAMPDIFF(MINUTE, PunchIn, PunchOut) AS minutes_diff FROM DemoTable624;

-- घंटे में अंतर
SELECT TIMESTAMPDIFF(HOUR, PunchIn, PunchOut) AS hours_diff FROM DemoTable624;

-- TIME_TO_SEC के साथ
SELECT TIME_TO_SEC(TIMEDIFF(PunchOut, PunchIn)) AS total_seconds FROM DemoTable624;

रात भर की शिफ्ट संभालना (दिन बदलना)

-- TIMEDIFF स्वचालित रूप से दिन परिवर्तन संभालता है
INSERT INTO DemoTable624 VALUES('2019-07-14 22:00:00', '2019-07-15 06:00:00');
SELECT TIMEDIFF(PunchOut, PunchIn) FROM DemoTable624 WHERE Id = 3;  -- 08:00:00

काम के घंटे गणना (ब्रेक घटाकर)

SELECT 
    TIME_FORMAT(
        TIMEDIFF(PunchOut, PunchIn) - INTERVAL 1 HOUR,  -- 1 घंटा ब्रेक घटाएं
        '%H hrs %i min'
    ) AS NetWorkHours
FROM DemoTable624;
  1. - MySQL में CASE WHEN और SUM से शर्ती गिनती को अलग कॉलम में प्रदर्शित करें (पिवट)

    MySQL में शर्तों के आधार पर गिनती करके परिणाम को अलग-अलग कॉलम में प्रदर्शित करने (पिवट/क्रॉस-टैब) के लिए SUM(CASE WHEN ... THEN 1 ELSE 0 END) पैटर्न का उपयोग करें। यह GROUP BY के साथ संयोजित करके पंक्तियों को कॉलम में बदल देता है। सिंटैक्स SELECT group_column, SUM(CASE WHEN condition1 THEN

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

    MySQL में दो DATETIME मानों के बीच अंतर की गणना MySQL में TIMESTAMPDIFF() फ़ंक्शन दो डेटाइम मानों के बीच निर्दिष्ट इकाई (सेकंड, मिनट, घंटे, दिन, आदि) में अंतर लौटाता है। DATEDIFF() के विपरीत जो केवल दिन लौटाता है, TIMESTAMPDIFF लचीला है। टेबल बनाना ); Query OK, 0 rows affected (0.86 sec) डेटा डाल

  1. - MySQL में TIMESTAMPDIFF से दो दिनांकों के बीच महीनों का अंतर निकालें

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