SQL - MONTH() 函式



SQL MONTH() 函式返回一個整數,表示特定日期的月份。1 代表一月,2 代表二月,以此類推。MONTH() 方法的引數可以是文字日期值,也可以是解析為 TIME、DATE、SMALLDATETIME、DATETIME、DATETIME2 或 DATETIMEOFFSET 值的表示式。

MONTH() 函式返回的值與 DATEPART() 函式相同。DATEPART() 函式是 SQL 中的內建函式,用於從日期值(例如年份、月份或日期)或時間值(例如小時、分鐘或秒)中檢索特定部分(作為整數)。

語法

以下是 SQL MONTH() 函式的語法:

MONTH(date)

引數

此函式接受一個引數,如下所述:

  • date − date 是一個表示式,它具有可以解析的時間、日期、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 引數可以是字串文字、表示式、列表達式或使用者定義的變數。

注意 - 如果給定的日期只包含時間部分,則 month() 函式返回 1。

示例

在下面的查詢中,我們使用以下查詢從特定日期檢索月份:

SELECT MONTH('2023/02/17 10:48') AS MONTH;

輸出

執行上述查詢後,將獲得以下輸出:

+-------+
| MONTH |
+-------+
| 2     |
+-------+

示例

在這裡,我們使用以下查詢查詢日期僅包含時間部分時的月份:

SELECT MONTH('10:48') AS Result;

輸出

執行上述查詢後,將顯示以下輸出:

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

示例

如果傳遞的引數為 NULL,則MONTH() 函式將返回 NULL 值。

在下面的示例中,我們將 NULL 值作為引數傳遞給 month() 函式,並透過執行以下查詢來檢索月份。

SELECT MONTH(NULL) AS MONTH;

輸出

上述查詢的輸出如下所示:

+-------+
| MONTH |
+-------+
| NULL  |
+-------+

示例

請看下面的示例,我們使用常規方法透過以下查詢獲取當前月份:

SELECT MONTH(GETDATE()) AS 'Current Month';

輸出

如果執行上述查詢,則結果如下所示:

+--------------+
| CurrentMonth |
+--------------+
| 2            |
+--------------+

示例

考慮下面的示例,我們使用CURRENT_TIMESTAMP 獲取當前月份,並執行以下查詢。

SELECT MONTH(CURRENT_TIMESTAMP) AS CurrentMonth;

輸出

執行上述查詢後,將生成如下所示的輸出:

+--------------+
| CurrentMonth |
+--------------+
| 2            |
+--------------+

示例

讓我們看一下下面的示例,我們使用日期作為引數,以及包含時間的變數和 MONTH() 函式,並執行查詢以檢索月份:

DECLARE @DATE VARCHAR(22);
SET @DATE = '2023/02/17 11:11';
SELECT MONTH(@DATE) AS Month;

輸出

執行上述查詢後,將生成如下所示的輸出:

+-------+
| Month |
+-------+
| 2     |
+-------+

示例

假設我們使用下面的 CREATE 語句在 SQL 資料庫中建立了一個名為 IPLPlayers 的表:

CREATE TABLE IPLPlayers(
   ID INT,
   Name VARCHAR(255),
   Date_Of_Birth date,
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

現在,讓我們使用下面的 INSERT 語句在 IPLPlayers 表中插入一些記錄:

INSERT INTO IPLPlayers VALUES (1, 'Shikhar','1999-11-10','India');
INSERT INTO IPLPlayers VALUES (2, 'Dhoni','1992-12-11','Jharkhand');
INSERT INTO IPLPlayers VALUES (3, 'Gayle','1993-10-12','Westindies');
INSERT INTO IPLPlayers VALUES (4, 'Williamson','1992-09-23','NewZealand'); 

我們可以使用以下查詢驗證 IPLPlayers 表是否已建立:

SELECT * FROM IPLPlayers;

IPLPlayers 表已成功在 SQL 資料庫中建立。

+----+------------+---------------+------------+
| ID | Name       | Date_Of_Birth | Country    |
+----+------------+---------------+------------+
| 1  | Shikhar    | 1999-11-10    | India      |
| 2  | Dhoni      | 1992-12-11    | Jharkhand  |
| 3  | Gayle      | 1993-10-12    | Westindies |
| 4  | Williamson | 1992-09-23    | NewZealand |
+----+------------+---------------+------------+

現在,我們將透過執行以下查詢從 IPLPlayers 表的 Date_Of_Birth 列中的所有實體檢索月份:

SELECT Name, Date_Of_Birth, Country,
MONTH(Date_Of_Birth) AS Month FROM IPLPlayers;

輸出

執行上述查詢後,將獲得以下輸出:

+------------+---------------+------------+-------+
| Name       | Date_Of_Birth | Country    | Month |
+------------+---------------+------------+-------+
| Shikhar    | 1999-11-10    | India      | 11    |
| Dhoni      | 1992-12-11    | Jharkhand  | 12    |
| Gayle      | 1993-10-12    | Westindies | 10    |
| Williamson | 1992-09-23    | NewZealand | 9     |
+------------+---------------+------------+-------+

示例

在下面的示例中,我們使用包含 MONTH() 函式的變數,並透過執行以下查詢在指定日期檢索月份:

DECLARE @DATE VARCHAR(22);
SET @DATE = '2023/02/16';
SELECT MONTH(@DATE) AS Month;

輸出

執行上述查詢後,將生成如下所示的輸出:

+-------+
| Month |
+-------+
| 2     |
+-------+
sql-date-functions.htm
廣告