Dưới đây là ba cách tiếp cận bạn có thể sử dụng để lấy tên ngày từ một ngày trong MariaDB.
Hai trong số các phương pháp này trả về tên ngày đầy đủ và một phương pháp trả về tên ngày ngắn.
DAYNAME()
Chức năng
DAYNAME()
chức năng được thiết kế đặc biệt để trả về tên ngày từ một ngày. Chỉ cần chuyển ngày khi gọi hàm và nó sẽ trả về tên đầy đủ của ngày.
Ví dụ:
SELECT DAYNAME('2021-08-19');
Kết quả:
+-----------------------+ | DAYNAME('2021-08-19') | +-----------------------+ | Thursday | +-----------------------+
Ngôn ngữ được sử dụng cho tên ngày được kiểm soát bởi giá trị của lc_time_names
biến hệ thống. Xem DAYNAME()
để biết ví dụ về cách điều này ảnh hưởng đến đầu ra.
DATE_FORMAT()
Chức năng
DATE_FORMAT()
chức năng định dạng một ngày nhất định thành một định dạng được chỉ định. Bạn chỉ định ngày và định dạng khi bạn gọi hàm.
Bạn có thể trả lại tên đầy đủ của các ngày trong tuần bằng cách chuyển %W
dưới dạng chuỗi định dạng.
Ví dụ:
SELECT DATE_FORMAT('2021-08-19', '%W');
Kết quả:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%W') | +---------------------------------+ | Thursday | +---------------------------------+
Như với DAYNAME()
, ngôn ngữ được sử dụng cho tên ngày được kiểm soát bởi giá trị của lc_time_names
biến hệ thống. Tuy nhiên, DATE_FORMAT()
hàm chấp nhận đối số thứ ba tùy chọn cho phép bạn chỉ định ngôn ngữ.
Dưới đây là một ví dụ về việc chỉ định ngôn ngữ:
SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');
Kết quả:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%W', 'ca_ES') | +------------------------------------------+ | dijous | +------------------------------------------+
Tên ngày ngắn
Chuyển %a
đến DATE_FORMAT()
hàm trả về tên ngày trong tuần ngắn.
Ví dụ:
SELECT DATE_FORMAT('2021-08-19', '%a');
Kết quả:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%a') | +---------------------------------+ | Thu | +---------------------------------+
Điều này có thể được sao chép với DAYNAME()
chức năng bằng cách sử dụng LEFT()
để lấy 3 ký tự đầu tiên từ tên ngày trong tuần.
Ví dụ:
SELECT LEFT(DAYNAME('2021-08-19'), 3);
Kết quả:
+--------------------------------+ | LEFT(DAYNAME('2021-08-19'), 3) | +--------------------------------+ | Thu | +--------------------------------+
Hiệu ứng tương tự cũng có thể đạt được bằng cách sử dụng một hàm như CAST()
để chuyển đổi kết quả thành kiểu dữ liệu có ba ký tự.
Tuy nhiên, mặc dù phương pháp này hoạt động trong en_US
, nó có thể không phải lúc nào cũng hoạt động ở các ngôn ngữ khác. Ví dụ:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
DAYNAME('2021-08-19') AS "Full";
Kết quả:
+---------+-----------+--------------------------+ | Short 1 | Short 2 | Full | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+