MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách lấy tên tháng ngắn từ ngày trong MariaDB

Trong MariaDB, bạn có thể sử dụng DATE_FORMAT() chức năng trả về các phần ngày tháng khác nhau từ một ngày tháng. Một trong những thứ bạn có thể trở lại là tên tháng ngắn ngủi. Ví dụ:Nov hoặc Dec (thay vì Nov hoặc December ).

Định dạng "Tên tháng ngắn hạn" (%b )

Chìa khóa để trả về tên tháng ngắn khi sử dụng DATE_FORMAT() chức năng là sử dụng công cụ định dạng thích hợp.

Trong MariaDB, định dạng chỉ định cho tên tháng ngắn là:%b

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT DATE_FORMAT('2023-12-25', '%b');

Kết quả:

+---------------------------------+
| DATE_FORMAT('2023-12-25', '%b') |
+---------------------------------+
| Dec                             |
+---------------------------------+

Dưới đây là một ví dụ khác diễn ra qua các tháng khác nhau trong năm:

SELECT 
    DATE_FORMAT('2023-01-25', '%b') AS "1",
    DATE_FORMAT('2023-02-25', '%b') AS "2",
    DATE_FORMAT('2023-03-25', '%b') AS "3",
    DATE_FORMAT('2023-04-25', '%b') AS "4",
    DATE_FORMAT('2023-05-25', '%b') AS "5",
    DATE_FORMAT('2023-06-25', '%b') AS "6",
    DATE_FORMAT('2023-07-25', '%b') AS "7",
    DATE_FORMAT('2023-08-25', '%b') AS "8",
    DATE_FORMAT('2023-09-25', '%b') AS "9",
    DATE_FORMAT('2023-10-25', '%b') AS "10",
    DATE_FORMAT('2023-11-25', '%b') AS "11",
    DATE_FORMAT('2023-12-25', '%b') AS "12";

Kết quả (sử dụng đầu ra dọc):

 1: Jan
 2: Feb
 3: Mar
 4: Apr
 5: May
 6: Jun
 7: Jul
 8: Aug
 9: Sep
10: Oct
11: Nov
12: Dec

Bạn cũng có thể trả về các đơn vị ngày và giờ khác, nhưng bài viết này chỉ nói riêng về việc trả lại tên tháng ngắn. Xem Chuỗi định dạng MariaDB để biết danh sách các mã định dạng có thể được sử dụng với DATE_FORMAT() .

Các cách tiếp cận khác

Có những cách khác để lấy tên tháng ngắn hạn từ một ngày liên quan đến việc cắt bỏ phần đầu tiên của tháng.

Tuy nhiên, phương pháp này có thể dễ bị lỗi hơn phương pháp trên (cộng với nó phức tạp hơn). Bạn có thể nhận được một số kết quả không mong muốn khi sử dụng phương pháp này, đặc biệt là khi làm việc với các ngôn ngữ khác nhau.

Dưới đây là một số ví dụ để chứng minh ý tôi muốn nói.

Thay vì sử dụng %b công cụ định dạng giống như chúng ta đã làm trong ví dụ trước, chúng ta có thể sử dụng %M định dạng chỉ định để trả về tên tháng đầy đủ, sau đó trả về rút ngắn kết quả đó bằng một hàm như LEFT() .

Ví dụ:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Short;

Kết quả:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Ngoài ra, chúng tôi có thể sử dụng một hàm như CAST() để chuyển đổi sang kiểu dữ liệu chỉ có ba ký tự, chẳng hạn như sau:

SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    CAST(DATE_FORMAT('2023-10-25', '%M') AS CHAR(3)) AS Short;

Kết quả:

+---------+-------+
| Full    | Short |
+---------+-------+
| October | Oct   |
+---------+-------+

Điều này hoạt động tốt khi làm việc với ngôn ngữ tiếng Anh (và có lẽ một số ngôn ngữ khác). Nhưng hãy xem điều gì sẽ xảy ra khi chúng ta chuyển sang một ngôn ngữ khác - giả sử như tiếng Thái:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M', 'th_TH'), 3) AS Short;

Kết quả:

+--------------------+-----------+
| Full               | Short     |
+--------------------+-----------+
| ตุลาคม              | ตุล        |
+--------------------+-----------+

Tuy nhiên, đây là những gì sẽ xảy ra khi chúng tôi sử dụng %b định dạng định dạng để trả về tên tháng ngắn:

SELECT 
    DATE_FORMAT('2023-10-25', '%M', 'th_TH') AS Full,
    DATE_FORMAT('2023-10-25', '%b', 'th_TH') AS Short;

Kết quả:

+--------------------+----------+
| Full               | Short    |
+--------------------+----------+
| ตุลาคม              | ต.ค.     |
+--------------------+----------+

Nó trả về một kết quả khác.

Vì vậy, tôi khuyên bạn nên sử dụng %b công cụ định dạng bất cứ khi nào có thể.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển từ Cơ sở dữ liệu Oracle sang MariaDB - Một bước tiến sâu

  2. Tổng kết năm 2018:7 cột mốc quan trọng của MariaDB mà bạn có thể đã bỏ lỡ

  3. Thêm dấu phần trăm vào một số trong MariaDB

  4. Mã hóa MariaDB đầy đủ khi nghỉ ngơi và đang chuyển để bảo vệ dữ liệu tối đa - Phần một

  5. Sửa lỗi 1064 (42000) khi sử dụng Toán tử MINUS trong MariaDB