Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn và định dạng ngày thành văn bản trong MySQL bằng DATE_FORMAT

Hàm DATE_FORMAT() chuyển đổi giá trị DATE, DATETIME, TIMESTAMP thành chuỗi theo định dạng tuỳ ý. Rất hữu ích cho hiển thị báo cáo, xuất file, API.

Cú pháp

SELECT DATE_FORMAT(ten_cot, 'mau_dinh_dang') FROM ten_bang;

Ví dụ: Định dạng 'Ngày Tháng Năm' (11 Jan 19)

mysql> CREATE TABLE DemoTable (DueDate DATE);
mysql> INSERT INTO DemoTable VALUES ('2019-01-11'), ('2019-12-21'), ('2019-09-15');

mysql> SELECT DATE_FORMAT(DueDate, '%e %b %y') FROM DemoTable;

Kết quả:

+----------------------------------+
| DATE_FORMAT(DueDate, '%e %b %y') |
+----------------------------------+
| 11 Jan 19                        |
| 21 Dec 19                        |
| 15 Sep 19                        |
+----------------------------------+

Bảng mã định dạng thường dùng

MãÝ nghĩaVí dụ
%YNăm 4 chữ số2019
%yNăm 2 chữ số19
%mTháng 2 chữ số01
%cTháng không đệm 01
%bTên tháng viết tắtJan
%MTên tháng đầy đủJanuary
%dNgày 2 chữ số11
%eNgày không đệm 011
%WTên thứ đầy đủFriday
%aTên thứ viết tắtFri

Mẫu định dạng phổ biến

  • ISO 8601: '%Y-%m-%d' → 2019-01-11
  • Việt Nam: '%d/%m/%Y' → 11/01/2019
  • Đầy đủ: '%W, %d %M %Y' → Friday, 11 January 2019
  • Giờ: '%H:%i:%s' → 12:34:45

Lưu ý

  • Kết quả kiểu VARCHAR – không dùng cho so sánh/ tính toán ngày.
  • Ngôn ngữ tên tháng/thứ phụ thuộc biến lc_time_names (mặc định 'en_US'). Đặt SET lc_time_names = 'vi_VN'; cho tiếng Việt.
  • MySQL 8.0+: có thêm FORMAT() cho số, nhưng ngày vẫn dùng DATE_FORMAT.