TIMESTAMPDIFF() फ़ंक्शन का उपयोग
MySQL में दो DATETIME/TIMESTAMP कॉलम के बीच **घंटों में अंतर** निकालने के लिए TIMESTAMPDIFF() फ़ंक्शन का उपयोग करें।
सिंटैक्स
SELECT ABS(TIMESTAMPDIFF(HOUR, yourColumnName1, yourColumnName2)) AS HourDifference
FROM yourTableName;
HOUR- इकाई (घंटा)ABS()- निरपेक्ष मान (नकारात्मक रोकने के लिए)- इकाइयाँ:
MICROSECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR
व्यावहारिक उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DifferenceInHours (
-> StartDateTime DATETIME,
-> EndDateTime DATETIME
-> );
Query OK, 0 rows affected (0.59 sec)
2. डेटा डालें
mysql> INSERT INTO DifferenceInHours VALUES('2018-12-20 10:00:00', '2018-12-19 12:00:00');
mysql> INSERT INTO DifferenceInHours VALUES('2018-12-20 11:00:00', '2018-12-19 11:00:00');
mysql> INSERT INTO DifferenceInHours VALUES('2018-12-20 10:30:00', '2018-12-19 11:00:00');
3. डेटा देखें
mysql> SELECT * FROM DifferenceInHours;
+---------------------+---------------------+
| StartDateTime | EndDateTime |
+---------------------+---------------------+
| 2018-12-20 10:00:00 | 2018-12-19 12:00:00 |
| 2018-12-20 11:00:00 | 2018-12-19 11:00:00 |
| 2018-12-20 10:30:00 | 2018-12-19 11:00:00 |
+---------------------+---------------------+
3 rows in set (0.00 sec)
4. घंटों में अंतर निकालें
mysql> SELECT ABS(TIMESTAMPDIFF(HOUR, StartDateTime, EndDateTime)) AS Hour
-> FROM DifferenceInHours;
+------+
| Hour |
+------+
| 22 |
| 24 |
| 23 |
+------+
3 rows in set (0.00 sec)
विस्तृत अंतर (घंटे, मिनट, सेकंड)
SELECT
TIMESTAMPDIFF(HOUR, StartDateTime, EndDateTime) AS hours,
TIMESTAMPDIFF(MINUTE, StartDateTime, EndDateTime) % 60 AS minutes,
TIMESTAMPDIFF(SECOND, StartDateTime, EndDateTime) % 60 AS seconds
FROM DifferenceInHours;
TIMESTAMPDIFF vs TIMEDIFF
| फ़ंक्शन | रिटर्न | उपयोग |
|---|---|---|
TIMESTAMPDIFF(unit, dt1, dt2) | पूर्णांक (इकाई में अंतर) | घंटे/दिन/महीना गिनने के लिए |
TIMEDIFF(dt1, dt2) | TIME मान (HH:MM:SS) | सटीक अंतर दिखाने के लिए |
SELECT TIMEDIFF('2018-12-20 10:00:00', '2018-12-19 12:00:00'); -- '22:00:00'
WHERE क्लॉज में उपयोग
-- पिछले 24 घंटे के रिकॉर्ड
SELECT * FROM Events
WHERE TIMESTAMPDIFF(HOUR, EventTime, NOW()) <= 24;
नोट: TIMESTAMPDIFF पूर्ण इकाइयाँ गिनता है (फ्लोर)। 23 घंटे 59 मिनट = 23 घंटे।