การจัดการวันที่ที่เก็บเป็น VARCHAR
เมื่อคอลัมน์วันที่เป็น VARCHAR แต่ต้องการคำนวณวันที่ (เช่นเพิ่มนาที) ต้องแปลงเป็น DATETIME ก่อนด้วย STR_TO_DATE() แล้วค่อยใช้ DATE_ADD()
สูตร
DATE_ADD(
STR_TO_DATE(varchar_date, 'format'),
INTERVAL n MINUTE
)
ตัวอย่าง
CREATE TABLE DemoTable2026 (ArrivalTime VARCHAR(20));
INSERT INTO DemoTable2026 VALUES
(DATE_ADD(STR_TO_DATE('2017-12-01 11:34:45', '%Y-%m-%d %H:%i:%s'), INTERVAL 10 MINUTE)),
(DATE_ADD(STR_TO_DATE('2015-01-31 10:00:00', '%Y-%m-%d %H:%i:%s'), INTERVAL 5 MINUTE)),
(DATE_ADD(STR_TO_DATE('2017-12-01 11:34:45', '%Y-%m-%d %H:%i:%s'), INTERVAL 20 MINUTE));
ผลลัพธ์
| ArrivalTime |
|---|
| 2017-12-01 11:44:45 |
| 2015-01-31 10:05:00 |
| 2017-12-01 11:54:45 |
แนะนำ: ควรเปลี่ยนชนิดข้อมูลเป็น DATETIME หรือ TIMESTAMP เพื่อประสิทธิภาพและความถูกต้องที่ดีกว่า