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

3 cách lấy tên tháng từ ngày trong SQL Server (T-SQL)

Khi sử dụng SQL Server, bạn có một số tùy chọn khác nhau khi bạn cần trả lại tên tháng của một ngày bằng T-SQL. Theo tên tháng, tôi không nói về số tháng (chẳng hạn như 07 ). Tôi đang nói về tên đầy đủ của tháng (chẳng hạn như tháng 7 ).

Ví dụ:khi được cung cấp ngày 2018-07-01 , bạn muốn tháng bảy sẽ được trả lại.

Bài viết này trình bày ba cách để trả lại tên tháng từ một ngày trong SQL Server bằng T-SQL.

Hàm FORMAT ()

FORMAT() hàm trả về một giá trị được định dạng theo định dạng được chỉ định và văn hóa tùy chọn. Bạn có thể sử dụng nó để trả lại tên tháng cho một ngày.

Đây là một ví dụ:

DECLARE @date datetime2 = '2018-07-01';
SELECT FORMAT(@date, 'MMMM') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| July     |
+----------+

Trong trường hợp này, chúng tôi đã cung cấp chuỗi định dạng MMMM là một chuỗi định dạng ngày và giờ tùy chỉnh để trả về tên tháng.

Điều tốt về FORMAT() chức năng là nó chấp nhận một đối số tùy chọn cho phép bạn chỉ định văn hóa để sử dụng.

Dưới đây là một số ví dụ:

DECLARE @date datetime2 = '2018-07-01';
SELECT 
    FORMAT(@date, 'MMMM', 'en-US') AS 'en-US',
    FORMAT(@date, 'MMMM', 'es-es') AS 'es-es',
    FORMAT(@date, 'MMMM', 'de-de') AS 'de-de',
    FORMAT(@date, 'MMMM', 'zh-cn') AS 'zh-cn';

Kết quả:

+---------+---------+---------+---------+
| en-US   | es-es   | de-de   | zh-cn   |
|---------+---------+---------+---------|
| July    | julio   | Juli    | 七月    |
+---------+---------+---------+---------+

Nếu bạn không cung cấp đối số về văn hóa, thì ngôn ngữ của phiên hiện tại sẽ được sử dụng. Nếu bạn không chắc phiên hiện tại đang sử dụng ngôn ngữ nào, đây là 3 cách để tải ngôn ngữ của phiên hiện tại. Nếu bạn thấy rằng bạn cần thay đổi ngôn ngữ, đây là cách đặt ngôn ngữ đó sang ngôn ngữ khác.

Bạn cũng có thể sử dụng FORMAT() hàm lấy tên tháng viết tắt. Để thực hiện việc này, chỉ cần sử dụng MMM (ba M s thay vì bốn).

Dưới đây là một ví dụ trả về cả tên tháng viết tắt và tên tháng đầy đủ:

DECLARE @date datetime2(0) = '2028-09-01';
SELECT 
    FORMAT(@date, 'MMM', 'en-US') 'en-US',
    FORMAT(@date, 'MMM', 'es-es') 'es-es',
    FORMAT(@date, 'MMM', 'it') 'it'
UNION ALL
SELECT 
    FORMAT(@date, 'MMMM', 'en-US'),
    FORMAT(@date, 'MMMM', 'es-es'),
    FORMAT(@date, 'MMMM', 'it');

Kết quả:

+-----------+------------+-----------+
| en-US     | es-es      | it        |
|-----------+------------+-----------|
| Sep       | sep.       | set       |
| September | septiembre | settembre |
+-----------+------------+-----------+

Đây chỉ là một trong nhiều cách để lấy tên tháng viết tắt từ ngày (mặc dù phương pháp này được cho là tốt nhất). Có ít nhất bốn cách khác để bạn có thể trả lại tên tháng viết tắt của một ngày.

Hàm DATENAME ()

DATENAME() chức năng tương tự như DATEPART() , ngoại trừ việc nó trả về tên của phần ngày được chỉ định (nhưng chỉ khi tên có thể áp dụng). Điều đó có nghĩa là nó trả về tên ngày trong tuần hoặc tên tháng nếu đó là những gì bạn yêu cầu.

Dưới đây là cách lấy tên tháng với hàm này:

DECLARE @date datetime2 = '2018-07-01';
SELECT DATENAME(month, @date) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| July     |
+----------+

Hàm vô hướng MONTHNAME () ODBC

Có một chức năng vô hướng ODBC đặc biệt để trả về tên tháng từ một ngày. Tên của nó là MONTHNAME() và nó diễn ra như thế này:

DECLARE @date datetime2 = '2018-07-01';
SELECT {fn MONTHNAME(@date)} AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| July     |
+----------+

Khi sử dụng các hàm vô hướng ODBC trong T-SQL, chúng được bao quanh bởi dấu ngoặc nhọn ({} ) và tên hàm có tiền tố là fn .

Nếu bạn cần lấy tên tháng ngắn, hãy xem 5 cách lấy tên tháng ngắn từ ngày trong SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Thay đổi tên cơ sở dữ liệu

  2. 6 Hàm lấy Ngày, Tháng và Năm từ một Ngày trong SQL Server

  3. 2 cách tạo cơ sở dữ liệu trên máy chủ được liên kết bằng T-SQL

  4. Tôi có thể kết nối với SQL Server bằng Xác thực Windows từ ứng dụng web Java EE không?

  5. Cách bật tính năng ghi dữ liệu thay đổi (CDC) trên cơ sở dữ liệu trong SQL Server - Hướng dẫn sử dụng máy chủ SQL