EOMONTH (Transact-SQL)

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

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

提示

可以使用 DATETRUNC 计算月份的开始时间。

Transact-SQL 语法约定

语法

EOMONTH ( start_date [ , month_to_add ] )

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

下面是结果集:

Result
------------
2022-12-31

(1 row(s) affected)

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

DECLARE @date VARCHAR(255) = '12/1/2022';
SELECT EOMONTH ( @date ) AS Result;
GO

下面是结果集。

Result
------------
2022-12-31

(1 row(s) affected)

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

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

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

下面是结果集:

This Month
-----------------------
2022-12-31

(1 row(s) affected)

Next Month
-----------------------
2022-01-31

(1 row(s) affected)

Last Month
-----------------------
2022-11-30

(1 row(s) affected)