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

MySQL में TIME_FORMAT और SUBSTRING से VARCHAR समय को वास्तविक समय में बदलें

MySQL में SUBSTRING() से घंटे/मिनट निकालकर TIME_FORMAT() से 'HH:MM' प्रारूप में बदल सकते हैं।

उदाहरण: 'HHMM' प्रारूप (1620) को 'HH:MM' (04:20) में

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1591 (ArrivalTime VARCHAR(20));

2. डेटा डालें

mysql> INSERT INTO DemoTable1591 VALUES('1620'), ('2345'), ('2210');

3. रूपांतरण क्वेरी

mysql> SELECT TIME_FORMAT(
    ->     CONCAT(SUBSTRING(ArrivalTime, 1, 2), ':', SUBSTRING(ArrivalTime, 3, 4)),
    ->     '%H:%i'
    -> ) FROM DemoTable1591;

4. परिणाम

+---------------------------------------------------------------------------------------------+
| TIME_FORMAT(CONCAT(SUBSTRING(ArrivalTime, 1,2), ':', SUBSTRING(ArrivalTime, 3,4)), '%H:%i') |
+---------------------------------------------------------------------------------------------+
| 16:20                                                                                       |
| 23:45                                                                                       |
| 22:10                                                                                       |
+---------------------------------------------------------------------------------------------+

चरण-दर-चरण

  1. SUBSTRING(ArrivalTime, 1, 2) - पहले 2 वर्ण: '16', '23', '22'
  2. SUBSTRING(ArrivalTime, 3, 4) - 3-4 वर्ण: '20', '45', '10'
  3. CONCAT(..., ':', ...) - '16:20', '23:45', '22:10'
  4. TIME_FORMAT(..., '%H:%i') - समय प्रारूप में (24-घंटा)

12-घंटा प्रारूप के लिए

TIME_FORMAT(..., '%h:%i %p')  -- 04:20 PM, 11:45 PM, 10:10 PM

बेहतर विकल्प: STR_TO_DATE (MySQL 5.7+)

SELECT STR_TO_DATE(ArrivalTime, '%H%i') FROM DemoTable1591;

सीधे VARCHAR को TIME/DATETIME में पार्स करता है। फिर TIME_FORMAT() से प्रदर्शन प्रारूप नियंत्रित करें।

CAST विकल्प

SELECT CAST(CONCAT(SUBSTRING(ArrivalTime,1,2),':',SUBSTRING(ArrivalTime,3,2)) AS TIME)
FROM DemoTable1591;

डेटा सफाई सिफारिश

  • संग्रहण के लिए TIME या DATETIME टाइप उपयोग करें
  • आवक डेटा को INSERT/UPDATE ट्रिगर या एप्लिकेशन में पार्स करें
  • स्ट्रिंग समय क्वेरी/सॉर्ट/गणना के लिए अकुशल

सामान्य समय प्रारूप

इनपुटपैटर्नSTR_TO_DATE
1620%H%iSTR_TO_DATE(str, '%H%i')
16:20%H:%iSTR_TO_DATE(str, '%H:%i')
4:20 PM%h:%i %pSTR_TO_DATE(str, '%h:%i %p')
  1. - MySQL समय को HH:MM:SS से HH:MM में बदलें

    TIME_FORMAT() फंक्शन का उपयोग करके समय फॉर्मेट बदलना बदलने के लिए MySQL TIME_FORMAT() का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1419 ( ArrivalTime time ); Query OK, 0 rows affected (0.78 sec) रिकॉर्ड डालें। यहां हमने समय रिकॉर्ड डाले हैं: insert into DemoTable1419 values(09:59:34); Que

  1. - MySQL में TIME_TO_SEC() और SEC_TO_TIME() का उपयोग करके TIME डेटाटाइप पंक्तियों का योग करना

    MySQL में समय मानों का योग: TIME_TO_SEC() और SEC_TO_TIME() MySQL सीधे TIME मानों का योग नहीं कर सकता, लेकिन आप उन्हें TIME_TO_SEC() के साथ सेकंड में परिवर्तित कर सकते हैं, योग कर सकते हैं, फिर SEC_TO_TIME() के साथ वापस TIME में परिवर्तित कर सकते हैं। उदाहरण: समय अवधि का योग पहले एक समय टेबल बनाते ह

  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