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

MySQL में UNIX_TIMESTAMP() से दो टाइमस्टैम्प के बीच सेकंड में अंतर निकालें

MySQL में UNIX_TIMESTAMP() फंक्शन से दो टाइमस्टैम्प कॉलम का अंतर सेकंड में प्राप्त करना

सिंटैक्स:

SELECT UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2) AS anyVariableName 
FROM yourTableName;

कैसे काम करता है:

  • UNIX_TIMESTAMP(datetime) → यूनिक्स एपॉक (1970-01-01) से सेकंड की संख्या
  • दोनों को सेकंड में बदलकर घटाने पर अंतर सेकंड में मिलता है

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE DifferenceInSeconds (
    -> FirstTimestamp TIMESTAMP,
    -> SecondTimestamp TIMESTAMP
    -> ); 
Query OK, 0 rows affected (0.93 sec)

2. डेटा डालें:

mysql> INSERT INTO DifferenceInSeconds VALUES('2012-12-12 13:16:55','2012-12-12 13:13:55');
mysql> INSERT INTO DifferenceInSeconds VALUES('2014-10-11 12:15:50','2014-10-11 12:13:50');
mysql> INSERT INTO DifferenceInSeconds VALUES('2018-12-14 13:30:53','2018-12-14 13:27:53');

3. अंतर निकालें:

mysql> SELECT UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp) AS Seconds 
    -> FROM DifferenceInSeconds;
+---------+ 
| Seconds | 
+---------+ 
| 180     | 
| 120     | 
| 180     | 
+---------+ 
3 rows in set (0.00 sec)

समस्या: कौन सा टाइमस्टैम्प बड़ा है पता नहीं?

अगर पहला छोटा है, तो परिणाम नेगेटिव होगा।

समाधान: ABS() फंक्शन उपयोग करें

SELECT ABS(UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp)) AS Seconds 
FROM DifferenceInSeconds;

टेस्ट: पहला टाइमस्टैम्प छोटा वाला रिकॉर्ड जोड़ें:

mysql> INSERT INTO DifferenceInSeconds VALUES('2018-12-14 13:26:53','2018-12-14 13:31:53');

बिना ABS():

+---------+ 
| Seconds | 
+---------+ 
| 180     | 
| 120     | 
| 180     | 
| -300    |  ← नेगेटिव
+---------+

ABS() के साथ:

+---------+ 
| Seconds | 
+---------+ 
| 180     | 
| 120     | 
| 180     | 
| 300     |  ← पॉजिटिव
+---------+

अन्य समय अंतर फंक्शन:

फंक्शनलौटाता हैउदाहरण
TIMESTAMPDIFF(SECOND, t1, t2)सेकंड में अंतर (साइन सहित)सबसे सटीक, यूनिट चुन सकते हैं
TIMEDIFF(t1, t2)TIME टाइप में अंतर'03:30:00' फॉर्मेट
DATEDIFF(d1, d2)दिनों में अंतरडेटा भाग केवल

सुझाव:

TIMESTAMPDIFF(SECOND, col1, col2) अधिक सटीक और पठनीय है — UNIX_TIMESTAMP के बजाय इसका उपयोग करें।

  1. - MySQL में दो शब्दों के बीच का स्पेस हटाना

    REPLACE() फ़ंक्शन से विशिष्ट स्पेस हटाना REPLACE(str, from_str, to_str) का उपयोग करके किसी विशिष्ट सबस्ट्रिंग (जैसे is ) को दूसरे सबस्ट्रिंग ( is) से बदलें। तालिका और डेटा (This is MySQL), (This is Java language), (This is MongoDB NoSQL database); स्पेस हटाने का UPDATE SET Title = REPLACE(Titl

  1. - MySQL में intvalue='1' और intvalue=1 में अंतर

    उत्तर intvalue = 1 उपयोग करें। स्टेटमेंट intvalue = 1 आंतरिक रूप से MySQL द्वारा CAST(1 AS INT) में कन्वर्ट हो जाता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.64 sec) INSERT INTO DemoTable1566 VALUES(90); Query OK, 1 row affected (0.19 sec) सभी रिकॉर्ड देखना SELECT *

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

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