MySQL में TIME या DATETIME कॉलम से सेकंड हटाकर केवल घंटा:मिनट (HH:MM) फॉर्मेट में दिखाने के लिए TIME_FORMAT() फंक्शन का उपयोग करें।
सिंटैक्स
SELECT TIME_FORMAT(yourTimeColumn, '%H:%i') AS formatted_time FROM yourTableName;
फॉर्मेट स्पेसिफायर
| स्पेसिफायर | अर्थ | उदाहरण |
|---|---|---|
%H | घंटा (00-23, 24-घंटा फॉर्मेट) | 10, 14, 23 |
%h | घंटा (01-12, 12-घंटा फॉर्मेट) | 10, 02, 11 |
%i | मिनट (00-59) | 05, 30, 59 |
%s | सेकंड (00-59) | 45, 00, 30 |
%p | AM/PM | AM, PM |
उदाहरण के साथ समझें
टेबल बनाएं:
CREATE TABLE removeSecondsFromTime (
Id INT NOT NULL AUTO_INCREMENT,
StartTime TIME,
EndTime TIME,
PRIMARY KEY(Id)
);
रिकॉर्ड डालें (सेकंड के साथ):
INSERT INTO removeSecondsFromTime(StartTime, EndTime) VALUES('10:20:45', '11:21:40');
INSERT INTO removeSecondsFromTime(StartTime, EndTime) VALUES('12:30:55', '13:20:21');
INSERT INTO removeSecondsFromTime(StartTime, EndTime) VALUES('14:40:57', '15:55:02');
सभी रिकॉर्ड देखें:
SELECT * FROM removeSecondsFromTime;
आउटपुट:
+----+-----------+----------+
| Id | StartTime | EndTime |
+----+-----------+----------+
| 1 | 10:20:45 | 11:21:40 |
| 2 | 12:30:55 | 13:20:21 |
| 3 | 14:40:57 | 15:55:02 |
+----+-----------+----------+
सेकंड हटाकर HH:MM फॉर्मेट में दिखाएं
SELECT TIME_FORMAT(StartTime, '%H:%i') AS StartingTime,
TIME_FORMAT(EndTime, '%H:%i') AS EndingTime
FROM removeSecondsFromTime;
परिणाम:
+--------------+------------+
| StartingTime | EndingTime |
+--------------+------------+
| 10:20 | 11:21 |
| 12:30 | 13:20 |
| 14:40 | 15:55 |
+--------------+------------+
अन्य उपयोगी फॉर्मेट
-- 12-घंटा फॉर्मेट AM/PM के साथ
TIME_FORMAT(time, '%h:%i %p') -- 10:20 AM
-- केवल घंटा
TIME_FORMAT(time, '%H') -- 10
-- घंटा:मिनट:सेकंड (मूल)
TIME_FORMAT(time, '%H:%i:%s') -- 10:20:45
DATETIME कॉलम के लिए
यदि कॉलम DATETIME है, तो पहले TIME भाग निकालें:
SELECT TIME_FORMAT(TIME(yourDateTimeCol), '%H:%i') FROM yourTable;
अपडेट में उपयोग (वास्तविक डेटा बदलने के लिए)
-- TIME कॉलम को HH:MM:00 पर सेट करें
UPDATE yourTable
SET timeCol = TIME(TIME_FORMAT(timeCol, '%H:%i')); -- सेकंड 00 हो जाएंगे
-- या
UPDATE yourTable
SET timeCol = SEC_TO_TIME(TIME_TO_SEC(timeCol) - TIME_TO_SEC(timeCol) % 60);
नोट
TIME_FORMAT()केवल **प्रदर्शन** बदलता है, संग्रहीत मान नहीं- वास्तविक डेटा बदलने के लिए
UPDATEमें उपयोग करें DATE_FORMAT()DATETIME/TIMESTAMP के लिए,TIME_FORMAT()TIME के लिए- इंडेक्स उपयोग के लिए WHERE में फंक्शन न लगाएं (SARGable नहीं)