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

MySQL में TIMEDIFF आउटपुट को दिन, घंटा, मिनट, सेकंड फॉर्मेट में कैसे बदलें?


CONCAT() और समय फंक्शन का उपयोग करें

दो DATETIME मानों के अंतर को "दिन घंटे मिनट" फॉर्मेट में दिखाने के लिए TIMEDIFF(), HOUR(), MINUTE() और CONCAT() का संयोजन उपयोग करें।

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE convertTimeDifferenceDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    StartDate DATETIME,
    EndDate DATETIME,
    PRIMARY KEY(Id)
);
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate, EndDate) 
VALUES(DATE_ADD(NOW(), INTERVAL -3 HOUR), DATE_ADD(NOW(), INTERVAL 3 HOUR));
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate, EndDate) 
VALUES(DATE_ADD(NOW(), INTERVAL -2 HOUR), DATE_ADD(NOW(), INTERVAL 2 HOUR));
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate, EndDate) 
VALUES('2018-04-05 12:30:35', '2018-05-17 14:30:50');
mysql> INSERT INTO convertTimeDifferenceDemo(StartDate, EndDate) 
VALUES('2017-10-11 11:20:30', '2017-12-17 15:21:55');

डेटा

+----+---------------------+---------------------+
| Id | StartDate           | EndDate             |
+----+---------------------+---------------------+
|  1 | 2019-01-28 20:55:33 | 2019-01-29 02:55:33 |
|  2 | 2019-01-28 21:57:42 | 2019-01-29 01:57:42 |
|  3 | 2018-04-05 12:30:35 | 2018-05-17 14:30:50 |
|  4 | 2017-10-11 11:20:30 | 2017-12-17 15:21:55 |
+----+---------------------+---------------------+

क्वेरी: दिन, घंटे, मिनट फॉर्मेट में अंतर

mysql> SELECT CONCAT(
    FLOOR(HOUR(TIMEDIFF(StartDate, EndDate)) / 24), ' DAYS ',
    MOD(HOUR(TIMEDIFF(StartDate, EndDate)), 24), ' HOURS ',
    MINUTE(TIMEDIFF(StartDate, EndDate)), ' MINUTES'
) AS DESCRIPTION 
FROM convertTimeDifferenceDemo;

आउटपुट

+------------------------------+
| DESCRIPTION                  |
+------------------------------+
| 0 DAYS 6 HOURS 0 MINUTES     |
| 0 DAYS 4 HOURS 0 MINUTES     |
| 34 DAYS 22 HOURS 59 MINUTES  |
| 34 DAYS 22 HOURS 59 MINUTES  |
+------------------------------+

व्याख्या

  • TIMEDIFF(StartDate, EndDate) — समय अंतर लौटाता है (नकारात्मक हो सकता है)।
  • HOUR(...) — अंतर के कुल घंटे (दिनों सहित)।
  • FLOOR(HOUR(...) / 24) — पूर्ण दिनों की संख्या।
  • MOD(HOUR(...), 24) — शेष घंटे (0-23)।
  • MINUTE(...) — शेष मिनट।
  • CONCAT(...) — मानव-पठनीय स्ट्रिंग में जोड़ता है।

सुधार: सेकंड शामिल करना

SELECT CONCAT(
    FLOOR(HOUR(TIMEDIFF(StartDate, EndDate)) / 24), 'd ',
    MOD(HOUR(TIMEDIFF(StartDate, EndDate)), 24), 'h ',
    MINUTE(TIMEDIFF(StartDate, EndDate)), 'm ',
    SECOND(TIMEDIFF(StartDate, EndDate)), 's'
) AS Duration FROM convertTimeDifferenceDemo;

नोट

TIMEDIFF का परिणाम TIME प्रकार है जिसकी सीमा -838:59:59 से 838:59:59 है। बहुत बड़े अंतराल के लिए TIMESTAMPDIFF() उपयोग करें।

  1. PHP MySQL में डेट फॉर्मेट को dd/mm/yyyy में कैसे बदलें? PHP MySQL में डेट फॉर्मेट को dd/mm/yyyy में कैसे बदलें?

    PHP में डेट फॉर्मेट बदलने के लिए date() फ़ंक्शन का उपयोग करें। PHP सिंटैक्स date(d/m/Y, yourDateTimeVariable); PHP कोड उदाहरण $LoginDate = strtotime(2019-01-12); echo date(d/m/Y, $LoginDate); आउटपुट 12/01/2019 strtotime() स्ट्रिंग को Unix Timestamp में बदलता है, फिर date() उसे मनचाहे फॉर्मेट म

  1. PHP वेरिएबल  11:00 AM  को MySQL टाइम फॉर्मेट में कैसे बदलें? PHP वेरिएबल "11:00 AM" को MySQL टाइम फॉर्मेट में कैसे बदलें?

    PHP टाइम स्ट्रिंग को MySQL TIME फॉर्मेट में कन्वर्ट करना PHP में DateTime क्लास का उपयोग करके 11:00 AM जैसे 12-घंटे के फॉर्मेट को MySQL के 24-घंटे के TIME फॉर्मेट (HH:MM:SS) में आसानी से बदला जा सकता है। PHP कोड उदाहरण $phpTime = 11:00 AM; echo PHP टाइम फॉर्मेट: . $phpTime . format(H:i:s); echo M

  1. - MySQL में STR_TO_DATE() से तारीख फॉर्मेट बदलें

    VARCHAR तारीख-स्ट्रिंग को MySQL DATETIME में कनवर्ट करें 12/10/2019 12:34:00 जैसे स्ट्रिंग को मान्य DATETIME में बदलने के लिए STR_TO_DATE() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec) mysql> insert int