MySQL में समय मानों का योग: TIME_TO_SEC() और SEC_TO_TIME()
MySQL सीधे TIME मानों का योग नहीं कर सकता, लेकिन आप उन्हें TIME_TO_SEC() के साथ सेकंड में परिवर्तित कर सकते हैं, योग कर सकते हैं, फिर SEC_TO_TIME() के साथ वापस TIME में परिवर्तित कर सकते हैं।
उदाहरण: समय अवधि का योग
पहले एक समय टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1442 (
-> DueTime TIME
-> );
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable1442 VALUES
-> ('00:08:00'), ('00:04:00'), ('12:55:00');
Query OK, 3 rows affected (0.13 sec)
mysql> SELECT * FROM DemoTable1442;
+----------+
| DueTime |
+----------+
| 00:08:00 |
| 00:04:00 |
| 12:55:00 |
+----------+
3 rows in set (0.00 sec)
समय योग क्वेरी
mysql> SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DueTime))) AS TotalTime
-> FROM DemoTable1442;
परिणाम
+-----------+ | TotalTime | +-----------+ | 13:07:00 | +-----------+ 1 row in set (0.03 sec)
चरण-दर-चरण गणना
| DueTime | TIME_TO_SEC() |
|---|---|
| 00:08:00 | 480 सेकंड |
| 00:04:00 | 240 सेकंड |
| 12:55:00 | 46,500 सेकंड |
| कुल | 47,220 सेकंड |
SEC_TO_TIME(47220) = 13 घंटे, 7 मिनट, 0 सेकंड = 13:07:00
महत्वपूर्ण विचार
- 24 घंटे से अधिक: SEC_TO_TIME() 24 घंटे से अधिक मानों को संभालता है (उदाहरण: 25:00:00)
- NULL मान: SUM() NULL को अनदेखा करता है, लेकिन TIME_TO_SEC(NULL) NULL लौटाता है
- VARCHAR समय: यदि समय VARCHAR में संग्रहीत है, तो पहले CAST करें:
TIME_TO_SEC(CAST(time_str AS TIME))
व्यावहारिक उपयोग के मामले
- कुल कार्य घंटे की गणना
- मीडिया प्लेलिस्ट अवधि जोड़ना
- प्रक्रिया निष्पादन समय जोड़ना
- शिफ्ट शेड्यूल कुल