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

5 cách lấy tên tháng ngắn từ ngày trong SQL Server

Đôi khi khi làm việc với SQL Server (hoặc bất kỳ DBMS nào khác cho vấn đề đó), bạn cần trả lại tên viết tắt trong một tháng. Bởi điều này, tôi có nghĩa là 3 chữ cái viết tắt của một tháng. Ví dụ:bạn cần "Tháng 12" thay vì "Tháng 12".

Dưới đây là bốn cách bạn có thể trích xuất tên tháng rút gọn từ một ngày trong SQL Server.

Hàm FORMAT ()

FORMAT() đã có sẵn từ SQL Server 2012 và đó là cách ngắn gọn nhất để trả về tháng dưới dạng viết tắt 3 chữ cái.

Dưới đây là một ví dụ về cách nó hoạt động:

DECLARE @date datetime2 = '2000-01-01';
SELECT FORMAT(@date, 'MMM') AS 'FORMAT';

Kết quả:

FORMAT
------
Jan   

Dòng đầu tiên chỉ cần khai báo một biến và ấn định ngày tháng cho nó. Dòng thứ hai là nơi chúng tôi trả về tên tháng ngắn kể từ ngày.

Các hàm CAST () và DATENAME ()

Tùy chọn này lấy ngày dưới dạng CHAR(3) , do đó cắt bỏ bất kỳ ký tự nào theo sau ba ký tự đầu tiên.

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

DECLARE @date datetime2 = '2000-01-01';
SELECT CAST(DATENAME(month, @date) AS CHAR(3)) AS 'CAST/DATENAME';

Kết quả:

CAST/DATENAME
-------------
Jan          

Hàm LEFT () và DATENAME ()

Tùy chọn này tương tự như tùy chọn trước, ngoại trừ việc nó sử dụng LEFT() hàm lấy 3 ký tự ngoài cùng bên trái của ngày.

Ví dụ:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(DATENAME(month, @date), 3) AS 'LEFT/DATENAME';

Kết quả:

LEFT/DATENAME
-------------
Jan          

Các hàm LEFT () và CONVERT ()

Tùy chọn này chuyển đổi ngày thành varchar, sau đó lấy ba ký tự đầu tiên.

Ví dụ:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT(CONVERT(varchar, @date, 100), 3) AS 'LEFT/CONVERT';

Kết quả:

LEFT/CONVERT
------------
Jan         

Trong ví dụ này, 100 đối số định kiểu ngày để ngày có định dạng sau: mon dd yyyy hh:miAM (hoặc PM) . Vì vậy, trong trường hợp của chúng tôi, ngày được viết là 12:00 SA ngày 1 tháng 1 năm 2000 .

Từ đó, việc đơn giản chỉ là cắt bỏ ba chữ cái đầu tiên với LEFT() chức năng.

Hàm LEFT () và MONTHNAME ()

Tùy chọn này sử dụng MONTHNAME() Hàm vô hướng ODBC để trả về tên tháng. Và như với hai ví dụ trước, chúng tôi chỉ cần trích xuất ba chữ cái đầu tiên của tên tháng đó.

Ví dụ:

DECLARE @date datetime2 = '2000-01-01';
SELECT LEFT({fn MONTHNAME(@date)}, 3) AS 'LEFT/MONTHNAME';

Kết quả:

LEFT/MONTHNAME
--------------
Jan               


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xem lịch sử công việc của SQL Server Agent với Azure Data Studio

  2. Cách sử dụng hàm IDENTITY () trong SQL Server

  3. Tránh bế tắc SQL với điều chỉnh truy vấn:Lời khuyên từ Brent Ozar

  4. Kết nối với MS SQL Server bằng Xác thực Windows bằng Python?

  5. Cách thêm Ràng buộc Mặc định vào các Cột hiện có trong Bảng SQL Server - Hướng dẫn SQL Server / TSQL Phần 91