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

MySQL में UNIX_TIMESTAMP से DATETIME को INTEGER में बदलें

MySQL में DATETIME/TIMESTAMP कॉलम को यूनिक्स टाइमस्टैम्प (सेकंड में, 1970-01-01 से) में बदलने के लिए UNIX_TIMESTAMP() फंक्शन का उपयोग करें।

सिंटैक्स

SELECT UNIX_TIMESTAMP(yourDatetimeColumn) AS unix_timestamp FROM yourTableName;

उदाहरण के साथ समझें

टेबल बनाएं:

CREATE TABLE DatetimeToInteger (
    Id INT NOT NULL AUTO_INCREMENT,
    ArrivalTime DATETIME,
    PRIMARY KEY(Id)
);

विभिन्न दिनांक-समय डालें:

INSERT INTO DatetimeToInteger(ArrivalTime) VALUES(NOW());
INSERT INTO DatetimeToInteger(ArrivalTime) VALUES(CURDATE());
INSERT INTO DatetimeToInteger(ArrivalTime) VALUES('2017-09-21 13:10:55');
INSERT INTO DatetimeToInteger(ArrivalTime) VALUES(DATE_ADD(NOW(), INTERVAL 3 YEAR));

सभी रिकॉर्ड देखें:

SELECT * FROM DatetimeToInteger;

आउटपुट:

+----+---------------------+
| Id | ArrivalTime         |
+----+---------------------+
| 1  | 2019-01-22 15:12:45 |
| 2  | 2019-01-22 00:00:00 |
| 3  | 2017-09-21 13:10:55 |
| 4  | 2022-01-22 15:14:32 |
+----+---------------------+

DATETIME को INTEGER (यूनिक्स टाइमस्टैम्प) में बदलें

SELECT UNIX_TIMESTAMP(ArrivalTime) AS DateTimeToIntegerDemo FROM DatetimeToInteger;

परिणाम:

+-----------------------+
| DateTimeToIntegerDemo |
+-----------------------+
| 1548150165            |
| 1548095400            |
| 1505979655            |
| 1642844672            |
+-----------------------+

व्याख्या

  • 1548150165 = 2019-01-22 15:12:45 UTC
  • 1548095400 = 2019-01-22 00:00:00 UTC (मध्यरात्रि)
  • 1505979655 = 2017-09-21 13:10:55 UTC
  • 1642844672 = 2022-01-22 15:14:32 UTC

व्युत्क्रम: INTEGER से DATETIME

SELECT FROM_UNIXTIME(1548150165);  -- 2019-01-22 15:12:45

टाइमज़ोन ध्यान दें

  • UNIX_TIMESTAMP() सत्र टाइमज़ोन का उपयोग करता है
  • UTC में बदलने के लिए: CONVERT_TZ() या सर्वर टाइमज़ोन सेट करें
  • SET time_zone = '+00:00'; फिर UNIX_TIMESTAMP() UTC देगा

अन्य उपयोग

-- वर्तमान यूनिक्स टाइमस्टैम्प
SELECT UNIX_TIMESTAMP();

-- विशिष्ट स्ट्रिंग से
SELECT UNIX_TIMESTAMP('2024-01-15 10:30:00');

-- WHERE क्लॉज में (इंडेक्स फ्रेंडली नहीं)
SELECT * FROM events WHERE UNIX_TIMESTAMP(event_time) > 1700000000;

-- बेहतर: तारीख की तुलना करें
SELECT * FROM events WHERE event_time > FROM_UNIXTIME(1700000000);

रेंज और सीमाएं

  • 32-बिट सिस्टम: 1970-01-01 से 2038-01-19 (Y2K38 समस्या)
  • 64-बिट MySQL: बहुत बड़ी रेंज (साल 292 बिलियन तक)
  • MySQL 8.0+ 64-बिट पर पूर्ण समर्थन

नोट

  • UNIX_TIMESTAMP() BIGINT लौटाता है
  • NULL इनपुट → NULL आउटपुट
  • अमान्य दिनांक → NULL + चेतावनी
  • प्रदर्शन: WHERE में फंक्शन इंडेक्स उपयोग रोकता है
  1. - MySQL में डेटटाइम को री-फॉर्मेट कैसे करें?

    परिचय MySQL में DATE_FORMAT() फंक्शन का उपयोग करके डेटटाइम मानों को विभिन्न फॉर्मेट में प्रदर्शित किया जा सकता है। MySQL डिफ़ॉल्ट रूप से YYYY-MM-DD HH:MM:SS फॉर्मेट में डेटटाइम स्टोर और प्रदर्शित करता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (1.10 sec) INSERT INTO DemoTa

  1. - MySQL क्वेरी में LONGTEXT को INTEGER की तरह कैसे ट्रीट करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Value longtext -> ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(778437437447488487476464644433334); Query OK, 1 row affected (0.18 s

  1. - MySQL में DATE_ADD और INTERVAL से DATETIME कॉलम में दिन जोड़ें

    DATE_ADD() फ़ंक्शन के साथ INTERVAL n DAY का उपयोग करके DATETIME कॉलम में दिन जोड़ें (या घटाएं)। टेबल बनाएं mysql> CREATE TABLE DemoTable1871 (ArrivalDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1871 VALUES(2019-12-19 07:45:00), (2018-11-10 12:00:00), (2019-01-31); 6 दिन जोड़ें (UP