Hàm DATE_FORMAT()
Sử dụng DATE_FORMAT(date, format_string) để tùy chỉnh hiển thị ngày tháng.
Format string phổ biến
| Specifier | Ý nghĩa | Ví dụ |
|---|---|---|
%d | Ngày (00-31) | 21 |
%M | Tên tháng đầy đủ | January |
%m | Tháng số (00-12) | 01 |
%Y | Năm 4 chữ số | 2019 |
%y | Năm 2 chữ số | 19 |
%W | Tên thứ đầy đủ | Monday |
Ví dụ
Tạo bảng:
CREATE TABLE DemoTable605 (DueDate DATE);
INSERT INTO DemoTable605 VALUES
('2019-01-21'), ('2019-02-23'), (CURDATE());
Định dạng: DD.MonthName.YYYY
SELECT DATE_FORMAT(DueDate, '%d.%M.%Y') FROM DemoTable605;
Kết quả:
+----------------------------------+
| DATE_FORMAT(DueDate, '%d.%M.%Y') |
+----------------------------------+
| 21.January.2019 |
| 23.February.2019 |
| 04.March.2019 |
| 24.April.2019 |
| 13.July.2019 |
+----------------------------------+
Các format thường dùng
-- Việt Nam: DD/MM/YYYY
DATE_FORMAT(date, '%d/%m/%Y') -- 21/01/2019
-- ISO 8601
DATE_FORMAT(date, '%Y-%m-%d') -- 2019-01-21
-- Có giờ
DATE_FORMAT(datetime, '%d/%m/%Y %H:%i:%s') -- 21/01/2019 14:30:00
-- Tên thứ + ngày tháng
DATE_FORMAT(date, '%W, %d %M %Y') -- Monday, 21 January 2019
Lưu ý
- Kết quả phụ thuộc
lc_time_namessystem variable (ngôn ngữ tên tháng/thứ). Mặc định tiếng Anh. - Để tiếng Việt:
SET lc_time_names = 'vi_VN';(cần locale support). DATE_FORMATtrả về VARCHAR, không dùng cho so sánh/tính toán (hãy dùng DATE/TIMESTAMP).