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

Lấy tên ngày trong tuần từ cột DATE trong MySQL (DAYNAME)

Vấn đề: Chuyển đổi cột DATE thành tên ngày (Monday, Tuesday...)

Cột ShippingDate kiểu DATE. Cần cột mới hiển thị 'Sunday', 'Wednesday'...

Giải pháp: Hàm DAYNAME()

Trả về tên ngày trong tuần tiếng Anh cho giá trị DATE/DATETIME.

1. Tạo bảng và dữ liệu

CREATE TABLE DemoTable (ShippingDate DATE);
INSERT INTO DemoTable VALUES
('2019-12-15'), ('2018-04-11'), ('2019-01-31'), ('2016-10-01');

2. Truy vấn

SELECT DAYNAME(ShippingDate) AS Day 
FROM DemoTable;

3. Kết quả

+-----------+
| Day       |
+-----------+
| Sunday    |
| Wednesday |
| Thursday  |
| Saturday  |
+-----------+

Các hàm liên quan ngày/tháng

Đổi ngôn ngữ (Locale)

MySQL trả về tiếng Anh. Để đổi ngôn ngữ, set lc_time_names:

SET lc_time_names = 'vi_VN'; -- Tiếng Việt (nếu hỗ trợ)
SELECT DAYNAME('2019-12-15'); -- Chủ Nhật

Danh sách locale: SHOW VARIABLES LIKE 'lc_time_names';

Lưu ý

  • DAYNAME không dùng index – chỉ dùng trong SELECT, không nên dùng trong WHERE/JOIN lớn.
  • Nếu cột là VARCHAR ngày, cần STR_TO_DATE trước.
HàmKết quảVí dụ (2019-12-15)
DAYNAME(date)Tên ngàySunday
DAYOFWEEK(date)Số thứ tự (1=CN, 7=Th7)1
DAYOFMONTH(date)Ngày trong tháng15
DAYOFYEAR(date)Ngày trong năm349
MONTHNAME(date)Tên thángDecember
WEEKDAY(date)Số thứ tự (0=Th2, 6=CN)6