Giới thiệu
Hàm DATE_FORMAT() cho phép chuyển đổi giá trị ngày/giờ thành chuỗi theo định dạng mong muốn ngay trong câu lệnh INSERT. Điều này hữu ích khi cột lưu trữ là kiểu chuỗi (VARCHAR/TEXT) nhưng bạn muốn kiểm soát định dạng hiển thị.
Cú pháp
INSERT INTO ten_bang (cot_ngay) VALUES (DATE_FORMAT(ngay_gio, 'dinh_dang'));
Ví dụ minh họa
Bước 1: Tạo bảng với cột VARCHAR
CREATE TABLE DemoTable2012 (ShippingDate VARCHAR(20));
Bước 2: Chèn ngày hiện tại, ngày giờ hiện tại, và ngày cố định với định dạng dd.mm.yyyy
INSERT INTO DemoTable2012 VALUES (DATE_FORMAT(CURDATE(), '%d.%m.%Y'));
INSERT INTO DemoTable2012 VALUES (DATE_FORMAT(NOW(), '%d.%m.%Y'));
INSERT INTO DemoTable2012 VALUES (DATE_FORMAT('2014-01-21', '%d.%m.%Y'));
Bước 3: Kiểm tra
SELECT * FROM DemoTable2012;
+--------------+
| ShippingDate |
+--------------+
| 21.12.2019 |
| 21.12.2019 |
| 21.01.2014 |
+--------------+
Các ký tự định dạng phổ biến:
%d: Ngày (01-31)%m: Tháng (01-12)%Y: Năm 4 chữ số%H: Giờ (00-23)%i: Phút (00-59)%s: Giây (00-59)
Lưu ý: Nên lưu trữ ngày tháng bằng kiểu DATE, DATETIME hoặc TIMESTAMP thay vì VARCHAR để tận dụng được các hàm ngày tháng, index và so sánh chính xác. Chỉ dùng VARCHAR khi bắt buộc bởi hệ thống legacy.