समाधान: CONCAT() के साथ UPDATE
अलग DATE और TIME कॉलम को मिलाकर DATETIME कॉलम बनाने के लिए CONCAT() फ़ंक्शन का उपयोग करें।
सिंटैक्स
UPDATE yourTableName SET datetimeColumn = CONCAT(dateColumn, ' ', timeColumn);
व्यावहारिक उदाहरण
टेबल बनाना (अलग DATE, TIME, DATETIME कॉलम)
mysql> CREATE TABLE getDateTimeFieldsDemo (
-> ShippingDate DATE,
-> ShippingTime TIME,
-> ShippingDatetime DATETIME
-> );
डेटा डालना (केवल DATE और TIME)
mysql> INSERT INTO getDateTimeFieldsDemo(ShippingDate, ShippingTime) VALUES
-> ('2018-01-21', '09:45:34'),
-> ('2013-07-26', '13:21:20'),
-> ('2017-12-31', '15:31:40'),
-> ('2019-03-07', '12:13:34');
मूल डेटा (ShippingDatetime NULL)
| ShippingDate | ShippingTime | ShippingDatetime |
|---|---|---|
| 2018-01-21 | 09:45:34 | NULL |
| 2013-07-26 | 13:21:20 | NULL |
| 2017-12-31 | 15:31:40 | NULL |
| 2019-03-07 | 12:13:34 | NULL |
CONCAT के साथ UPDATE
mysql> UPDATE getDateTimeFieldsDemo
-> SET ShippingDatetime = CONCAT(ShippingDate, ' ', ShippingTime);
Query OK, 4 rows affected (0.09 sec)
परिणाम
| ShippingDate | ShippingTime | ShippingDatetime |
|---|---|---|
| 2018-01-21 | 09:45:34 | 2018-01-21 09:45:34 |
| 2013-07-26 | 13:21:20 | 2013-07-26 13:21:20 |
| 2017-12-31 | 15:31:40 | 2017-12-31 15:31:40 |
| 2019-03-07 | 12:13:34 | 2019-03-07 12:13:34 |
बेहतर विकल्प: TIMESTAMP() फ़ंक्शन
UPDATE getDateTimeFieldsDemo SET ShippingDatetime = TIMESTAMP(ShippingDate, ShippingTime);
TIMESTAMP(date, time) फ़ंक्शन विशेष रूप से इस उद्देश्य के लिए डिज़ाइन किया गया है और अधिक मजबूत है।
SELECT में संयोजन (बिना UPDATE)
SELECT
ShippingDate,
ShippingTime,
CONCAT(ShippingDate, ' ', ShippingTime) AS CombinedDateTime,
TIMESTAMP(ShippingDate, ShippingTime) AS TimestampMethod
FROM getDateTimeFieldsDemo;
आवेदन स्तर पर विचार
- संभव हो तो सीधे DATETIME/TIMESTAMP कॉलम का उपयोग करें
- अलग DATE/TIME केवल विशिष्ट व्यावसायिक आवश्यकताओं के लिए
- टाइमज़ोन जागरूकता के लिए TIMESTAMP बेहतर
- इंडेक्सिंग: संयुक्त DATETIME पर इंडेक्स अलग कॉलम की तुलना में अधिक कुशल