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

MONTH () Ví dụ trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể sử dụng MONTH() hàm để trả về phần “tháng” của ngày. Giá trị này được trả về dưới dạng số nguyên (không phải tên tháng).

Dưới đây là các ví dụ về cách sử dụng chức năng này.

Cú pháp

Cú pháp như sau:

MONTH ( date )

Nơi date là một biểu thức phân giải thành một trong các kiểu dữ liệu sau:

  • ngày
  • ngày giờ
  • bộ datetimeoffs
  • datetime2
  • smalldatetime
  • thời gian

Đây có thể là một biểu thức cột, biểu thức, chuỗi ký tự hoặc biến do người dùng xác định.

Ví dụ

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

SELECT 
   SYSDATETIME() AS 'Date',
   MONTH(SYSDATETIME()) AS 'Month';

Kết quả:

+-----------------------------+---------+
| Date                        | Month   |
|-----------------------------+---------|
| 2018-06-18 00:39:06.7954314 | 6       |
+-----------------------------+---------+

Vì vậy, MONTH() hàm có thể trích xuất tháng từ datetime2 giá trị (được trả về bởi SYSDATETIME() chức năng).

Ngày được cung cấp dưới dạng văn bản chuỗi

Dưới đây là một ví dụ trong đó ngày được cung cấp dưới dạng chuỗi ký tự.

SELECT MONTH('2019-01-07') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Và đây là một ví dụ trong đó ngày được cung cấp ở một định dạng khác:

SELECT MONTH('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Tuy nhiên, tốt nhất là bạn nên tránh sử dụng ngày ở các định dạng như vậy. Nếu phải làm như vậy, bạn cần lưu ý đến cài đặt ngôn ngữ và / hoặc cài đặt định dạng ngày của phiên hiện tại.

Cài đặt ngôn ngữ

Kết quả của ví dụ trước sẽ phụ thuộc vào cài đặt ngôn ngữ và / hoặc cài đặt định dạng ngày của phiên hiện tại.

Khi chúng tôi đặt ngôn ngữ, định dạng ngày tháng được đặt ngầm định cùng một lúc.

Đây là những gì sẽ xảy ra khi chúng tôi cung cấp cùng một đối số ngày tháng trong hai môi trường ngôn ngữ khác nhau.

Anh

SET LANGUAGE British;
SELECT MONTH('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

us_English

SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

Cài đặt định dạng ngày

Cài đặt định dạng ngày có thể ghi đè cài đặt ngôn ngữ, vì vậy bạn cũng cần lưu ý về cài đặt này. Ví dụ:chúng tôi có thể đang sử dụng us_English cho ngôn ngữ của chúng tôi (có định dạng ngày mặc định là mdy ), nhưng chúng tôi có thể ghi đè định dạng ngày thành dmy .

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

us_English - Định dạng ngày mặc định

Tại đây, chúng tôi đặt ngôn ngữ thành us_English , điều này hoàn toàn đặt định dạng ngày thành myy .

SET LANGUAGE us_English;
SELECT MONTH('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7        |
+----------+

us_English - Ghi đè định dạng ngày

Tại đây, chúng tôi đặt ngôn ngữ thành us_English (đặt định dạng ngày một cách hoàn toàn), nhưng sau đó chúng tôi đặt định dạng ngày một cách rõ ràng thành dmy . Điều này ghi đè định dạng ngày đã được đặt ngầm khi chúng tôi đặt ngôn ngữ.

SET LANGUAGE us_English;
SET DATEFORMAT dmy;
SELECT MONTH('07/01/2017') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Trả lại tên tháng

Nếu bạn cần trả lại tên tháng (thay vì số tháng), hãy xem 3 cách để lấy tên tháng từ mộ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. Tôi có thể lấy tên của tất cả các bảng của cơ sở dữ liệu SQL Server trong ứng dụng C # không?

  2. Ví dụ về SQUARE () trong SQL Server

  3. 3 cách trả về số lượng hàng trong mỗi phân vùng trong SQL Server (T-SQL)

  4. Nhận ID đăng nhập hiện tại trong SQL Server (T-SQL)

  5. Giới thiệu về bảng tạm thời trong SQL Server