Trong MySQL DATE_FORMAT(), ký hiệu %M hiển thị **tên tháng đầy đủ** (January, February...), KHÔNG phải viết tắt. Để hiển thị tháng viết tắt 3 chữ cái (Jan, Feb, Mar...), dùng %b.
Bảng so sánh định dạng tháng
| Ký hiệu | Ý nghĩa | Ví dụ (tháng 1) |
|---|---|---|
%M | Tên tháng đầy đủ | January |
%b | Tên tháng viết tắt (3 chữ cái) | Jan |
%m | Tháng 2 chữ số | 01 |
%c | Tháng số (1-12, không padding) | 1 |
Cú pháp
SELECT DATE_FORMAT(ten_cot_ngay, '%d-%b-%y') AS dinh_dang_ngan
FROM ten_bang;
Ví dụ minh họa
1. Tạo bảng
CREATE TABLE DateFormatMonthDemo (
Id INT NOT NULL AUTO_INCREMENT,
ShippingDate DATE,
PRIMARY KEY(Id)
);
2. Chèn dữ liệu
INSERT INTO DateFormatMonthDemo(ShippingDate) VALUES
('2019-05-21'), ('2015-05-23'), ('2019-11-01'),
('2017-12-24'), ('2016-01-13'), ('2015-02-22');
3. Xem dữ liệu gốc
SELECT * FROM DateFormatMonthDemo;
Kết quả:
+----+--------------+
| Id | ShippingDate |
+----+--------------+
| 1 | 2019-05-21 |
| 2 | 2015-05-23 |
| 3 | 2019-11-01 |
| 4 | 2017-12-24 |
| 5 | 2016-01-13 |
| 6 | 2015-02-22 |
+----+--------------+
4. Định dạng: Ngày-ThángViếtTắt-Năm2Số
SELECT DATE_FORMAT(ShippingDate, '%d-%b-%y') AS DateDemo
FROM DateFormatMonthDemo;
Kết quả:
+-----------+
| DateDemo |
+-----------+
| 21-May-19 |
| 23-May-15 |
| 01-Nov-19 |
| 24-Dec-17 |
| 13-Jan-16 |
| 22-Feb-15 |
+-----------+
Các định dạng phổ biến khác
| Mẫu | Kết quả (2019-05-21) | Mô tả |
|---|---|---|
%d-%b-%Y | 21-May-2019 | Ngày-ThángViếtTắt-Năm4Số |
%b %d, %Y | May 21, 2019 | Phong cách US |
%d/%m/%Y | 21/05/2019 | Phong cách VN/UK |
%W, %d %M %Y | Tuesday, 21 May 2019 | Đầy đủ thứ, tháng |
%Y-%m-%d | 2019-05-21 | ISO 8601 (chuẩn quốc tế) |
Lưu ý
DATE_FORMAT()trả về kiểuVARCHAR(chuỗi)- Locale ảnh hưởng đến tên tháng:
SET lc_time_names = 'vi_VN';→ Tháng hiển thị tiếng Việt - Để parse ngược lại:
STR_TO_DATE('21-May-19', '%d-%b-%y')