TIME_TO_SEC, MIN, MAX के साथ समय अंतर गणना
एक ही उपयोगकर्ता की पहली और अंतिम पोस्ट तिथि के बीच का समय अंतर निकालने के लिए TIME_TO_SEC, MIN, MAX, और SEC_TO_TIME का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
UserName VARCHAR(100),
UserPostDatetime DATETIME
);
Query OK, 0 rows affected (0.65 sec)
mysql> INSERT INTO DemoTable VALUES('Adam','2019-08-24 11:10:00');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('Adam','2019-08-24 11:20:00');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Adam','2019-08-24 11:50:00');
Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+----------+---------------------+ | UserName | UserPostDatetime | +----------+---------------------+ | Adam | 2019-08-24 11:10:00 | | Adam | 2019-08-24 11:20:00 | | Adam | 2019-08-24 11:50:00 | +----------+---------------------+ 3 rows in set (0.00 sec)
पहली और अंतिम तिथि का अंतर (सेकंड में फिर समय में)
mysql> SELECT UserName,
SEC_TO_TIME(MAX(TIME_TO_SEC(UserPostDatetime)) - MIN(TIME_TO_SEC(UserPostDatetime))) AS t
FROM DemoTable GROUP BY UserName;
परिणाम:
+----------+----------+ | UserName | t | +----------+----------+ | Adam | 00:40:00 | +----------+----------+ 1 row in set (0.03 sec)
तर्क: TIME_TO_SEC प्रत्येक दिनांक-समय को सेकंड में बदलता है। MAX - MIN अधिकतम और न्यूनतम सेकंड का अंतर (2400 सेकंड = 40 मिनट)। SEC_TO_TIME वापस HH:MM:SS में बदलता है।
सरल विकल्प (MySQL 5.7+): TIMEDIFF(MAX(UserPostDatetime), MIN(UserPostDatetime)) सीधे समय अंतर देता है।