EOMONTH (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

此函数返回包含指定日期所在月份的最后一天(具有可选偏移量)。

提示

在 SQL Server 2022(16.x)及更高版本中,可以使用 DATETRUNC 计算月份的开始时间。

Transact-SQL 语法约定

语法

EOMONTH ( start_date [ , month_to_add ] )

参数

start_date

日期表达式,指定要为其返回该月的最后一天的日期。

month_to_add

可选的整数表达式,指定要加到 start_date 的月份数。

如果 month_to_add 参数具有值,则 EOMONTH 向 start_date 添加指定月份数,然后返回结果日期所在月份的最后一天 。 如果此加法溢出有效日期范围,则 EOMONTH 引发错误。

返回类型

date

注解

EOMONTH 函数可以远程连接到运行 SQL Server 2012(11.x)及更高版本的实例。 它不能远程连接到 SQL Server 2012(11.x)之前的版本实例。

示例

A. 具有显式 datetime 类型的 EOMONTH

DECLARE @date DATETIME = '12/1/2024';

SELECT EOMONTH(@date) AS Result;
GO

结果集如下。

Result
------------
2024-12-31

B. 具有字符串参数与隐式转换的 EOMONTH

DECLARE @date VARCHAR(255) = '12/1/2024';

SELECT EOMONTH(@date) AS Result;
GO

结果集如下。

Result
------------
2024-12-31

°C 具有和不具有 month_to_add 参数的 EOMONTH

以下结果集中显示的值反映了执行日期范围 12/01/202412/31/2024(含这两个日期)。

DECLARE @date DATETIME = '2024-12-31';

SELECT EOMONTH(@date) AS 'This Month';
SELECT EOMONTH(@date, 1) AS 'Next Month';
SELECT EOMONTH(@date, -1) AS 'Last Month';
GO

结果集如下。

This Month
-----------------------
2024-12-31

Next Month
-----------------------
2025-01-31

Last Month
-----------------------
2024-11-30