SQL Server MONTH() - 获取月份的整数值
在 SQL Server 中,MONTH()
函数从指定日期返回月份的整数值。一月返回 1,二月返回 2,依此类推。
MONTH(date)
参数
日期:一个可以解析为日期、datetime、datetime2、time、smalldatetime 或 datetimeoffset 值的表达式。日期参数可以是字符串文字、用户定义变量或表列。
返回值
返回一个整数,表示指定日期的月份部分。它返回与 DATEPART(month, date) 函数相同的值。
如果指定日期只包含时间部分,则 MONTH()
函数返回 1。
获取月份的整数值
在以下示例中,MONTH()
函数从指定日期字符串文字(格式为 'MM/dd/yyyy')返回月份的整数值。
示例:MONTH()
SELECT MONTH ('11/23/2022') AS Month

如果您传入一个时间字符串值,MONTH()
函数将返回 1。
示例:带时间值的 MONTH()
SELECT MONTH('10:22:15') AS Result

您可以将 MONTH()
函数与表的列一起使用。例如,以下示例从 Employee
表的 HireDate
列中获取月份。
示例:带列的 MONTH()
SELECT EmployeeID, FirstName, HireDate, MONTH(HireDate) AS HireMonth FROM Employee

从日期获取月份名称
要从日期获取月份名称,请使用 DATENAME() 函数。
在下面的示例中,我们只从 MONTH()
函数返回月份的整数值。要从月份整数获取月份名称,您需要将月份 CAST 为 INT,并将其与年份和日期部分(我们使用 1900 作为年份,01 作为日期)CONCAT 起来以获取日期,然后在此日期上使用 DATENAME 函数。
注意:您可以在 SQL Server 中创建一个函数,该函数将月份作为整数,并返回月份名称。
示例:获取月份名称
SELECT DATENAME (mm, CONCAT('1900', FORMAT(CAST(MONTH('11/23/2022') AS INT), '00'), '01')) AS MonthName
