Dưới đây là ba cách để trả lại tên tháng từ một ngày trong MariaDB.
MONTHNAME()
Chức năng
MONTHNAME()
chức năng được thiết kế đặc biệt để trả về tên tháng từ một ngày. Để làm điều này, hãy chuyển ngày cho hàm khi gọi nó. Tên đầy đủ của tháng sẽ được trả lại.
Ví dụ:
SELECT MONTHNAME('2021-08-19');
Kết quả:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
Ngôn ngữ được sử dụng cho tên tháng được kiểm soát bởi giá trị của lc_time_names
biến hệ thống. Xem MONTHNAME()
để 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 tháng đầy đủ bằng cách chuyển %M
dưới dạng chuỗi định dạng.
Ví dụ:
SELECT DATE_FORMAT('2021-08-19', '%M');
Kết quả:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Như với MONTHNAME()
, ngôn ngữ được sử dụng cho tên tháng đượ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', '%M', 'ca_ES');
Kết quả:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Tên tháng ngắn
Chuyển %b
đến DATE_FORMAT()
hàm trả về tên tháng ngắn hạn.
Ví dụ:
SELECT DATE_FORMAT('2021-08-19', '%b');
Kết quả:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
Điều này có thể được sao chép với MONTHNAME()
chức năng bằng cách sử dụng LEFT()
để lấy 3 ký tự đầu tiên từ tên tháng.
Ví dụ:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Kết quả:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
Khái niệm tương tự có thể đạt được bằng cách chuyển đổi kết quả của MONTHNAME()
sang kiểu dữ liệu ba ký tự với một hàm như CAST()
.
Tuy nhiên, trong khi 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', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full";
Kết quả:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+