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

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

Trong MySQL, bạn có thể sử dụng DATE_FORMAT() hàm với %b định dạng chỉ định để trả về tên tháng ngắn hạn. Ví dụ:bạn có thể trả về Jan hoặc Feb thay vì January hoặc Feb .

Ví dụ

SELECT DATE_FORMAT('2035-01-18', '%b');

Kết quả:

Jan

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('2035-01-18', '%b') AS "1",
    DATE_FORMAT('2035-02-18', '%b') AS "2",
    DATE_FORMAT('2035-03-18', '%b') AS "3",
    DATE_FORMAT('2035-04-18', '%b') AS "4",
    DATE_FORMAT('2035-05-18', '%b') AS "5",
    DATE_FORMAT('2035-06-18', '%b') AS "6",
    DATE_FORMAT('2035-07-18', '%b') AS "7",
    DATE_FORMAT('2035-08-18', '%b') AS "8",
    DATE_FORMAT('2035-09-18', '%b') AS "9",
    DATE_FORMAT('2035-10-18', '%b') AS "10",
    DATE_FORMAT('2035-11-18', '%b') AS "11",
    DATE_FORMAT('2035-12-18', '%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ỉ là trả về tên tháng ngắn.

Xem Bộ chỉ định định dạng ngày trong MySQL để biết danh sách các mã định dạng có thể được sử dụng với DATE_FORMAT() .

Rút ngắn Tên đầy đủ của Tháng

Nếu bạn cần rút ngắn tên tháng đầy đủ, bạn luôn có thể sử dụng một hàm như LEFT() để chỉ trả lại ba ký tự đầu tiên (hoặc tuy nhiên bạn cần nhiều ký tự).

Ví dụ:

SELECT 
    DATE_FORMAT('2035-09-18', '%M') AS Full,
    LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;

Kết quả:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+

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('2035-09-18', '%M') AS Full,
    CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;

Kết quả:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+
1 row in set, 1 warning (0.00 sec)

Trong trường hợp này, chúng tôi nhận được cảnh báo vì chúng tôi đang cắt bớt một giá trị dài hơn:

show warnings;

Kết quả:

+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' |
+---------+------+------------------------------------------------+

Việc rút ngắn tên tháng như thế này có thể tốt khi làm việc với các ngôn ngữ như tiếng Anh, nhưng hãy lưu ý rằng nó có thể không trả lại kết quả giống như khi sử dụng %b bộ định dạng.

Để chứng minh ý tôi, đây là điều sẽ xảy ra khi tôi chuyển phiên của mình sang sử dụng tiếng Thái:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
    DATE_FORMAT('2023-10-25', '%b') AS Short;

Kết quả:

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

Việc cắt bớt tên tháng đầy đủ sẽ trả về một kết quả khác với việc sử dụng %b định dạng chỉ định để trả về tên tháng ngắn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để khai báo một biến trong MySQL?

  2. Cách kiểm tra kết nối cơ sở dữ liệu PHP MySQL bằng Script

  3. Ví dụ về DATE_ADD () - MySQL

  4. Dữ liệu nguồn mở ngày càng phát triển:Chọn MySQL, NoSQL hoặc cả hai

  5. Cách chạy nhiều phiên bản MySQL trên cùng một máy