Giới thiệu
Nếu cột lưu trữ ngày giờ dưới dạng chuỗi VARCHAR, bạn vẫn có thể thực hiện phép cộng/trừ thời gian khi chèn dữ liệu bằng cách: chuyển chuỗi thành DATETIME bằng STR_TO_DATE, dùng DATE_ADD (hoặc INTERVAL), sau đó lưu kết quả (MySQL sẽ tự chuyển ngược thành chuỗi nếu cột là VARCHAR).
Ví dụ minh họa
Bước 1: Tạo bảng cột VARCHAR
CREATE TABLE DemoTable2026 (ArrivalTime VARCHAR(20));
Bước 2: Chèn dữ liệu với cộng thêm phút
INSERT INTO DemoTable2026 VALUES (
DATE_ADD(STR_TO_DATE('2017-12-01 11:34:45', '%Y-%m-%d %H:%i:%s'), INTERVAL 10 MINUTE)
);
INSERT INTO DemoTable2026 VALUES (
DATE_ADD(STR_TO_DATE('2015-01-31 10:00:00', '%Y-%m-%d %H:%i:%s'), INTERVAL 5 MINUTE)
);
INSERT INTO DemoTable2026 VALUES (
DATE_ADD(STR_TO_DATE('2017-12-01 11:34:45', '%Y-%m-%d %H:%i:%s'), INTERVAL 20 MINUTE)
);
Bước 3: Kiểm tra
SELECT * FROM DemoTable2026;
+---------------------+
| ArrivalTime |
+---------------------+
| 2017-12-01 11:44:45 |
| 2015-01-31 10:05:00 |
| 2017-12-01 11:54:45 |
+---------------------+
Lưu ý: Nên lưu trữ ngày giờ bằng kiểu DATETIME hoặc TIMESTAMP để tận dụng index, hàm ngày tháng và tránh lỗi định dạng. Chỉ dùng VARCHAR khi bắt buộc.