Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การเพิ่มนาทีในวันที่ VARCHAR ขณะ INSERT ใน MySQL

การจัดการวันที่ที่เก็บเป็น 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 เพื่อประสิทธิภาพและความถูกต้องที่ดีกว่า