SQL MONTH()函数
指定日期的月份由SQL MONTH()函数返回的整数表示。它返回1代表一月,2代表二月,依此类推。MONTH()方法的参数可以是字面日期值,也可以是解析为TIME、DATE、SMALLDATETIME、DATETIME、DATETIME2或DATETIMEOFFSET值的表达式。
MONTH()函数返回与DATEPART()相同的值。DATEPART()函数是SQL中的内置函数,用于从日期值(如年、月或日)或时间值(如小时、分钟或秒)中检索特定段(作为整数)。
语法
以下是SQL MONTH()函数的语法−
MONTH(date)
参数
此函数接受一个参数,参数如下所述 –
- date - 日期是一个具有可解析时间、日期、smalldatetime、datetime、datetime2或datetimeoffset值的表达式。日期参数可以是字符串字面值、表达式、列表达式或用户定义的变量。
注意 - 如果给定的日期仅包含时间部分,则month()函数返回1。
示例
在以下查询中,我们使用以下查询检索特定日期的月份 –
SELECT MONTH('2023/02/17 10:48') AS MONTH;
输出
当我们执行上述查询时,输出结果如下 –
+-------+
| MONTH |
+-------+
| 2 |
+-------+
示例
在这里,我们通过使用以下查询来找到只包含时间部分的日期所对应的月份 –
SELECT MONTH('10:48') AS Result;
输出
执行上述查询后,输出如下所示-
+--------+
| Result |
+--------+
| 1 |
+--------+
示例
如果传递的参数为NULL, MONTH() 函数将返回一个空值。
在下面的示例中,我们将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语句将一些记录插入到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是否已创建:
我们可以使用以下查询来验证表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 |
+-------+