1、本文内容
- 语法
- 参数
- 返回类型
- 注解
- 示例
适用于:
- SQL Server
- Azure SQL 数据库
- Azure SQL 托管实例
- Azure Synapse Analytics
- Analytics Platform System (PDW)
此函数返回包含指定日期所在月份的最后一天(具有可选偏移量)
在 SQL Server 2022(16.x)及更高版本中,可以使用 DATETRUNC 计算月份的开始时间。
具体请查看我的这篇 文章
https://blog.csdn.net/zxrhhm/article/details/140699765?spm=1001.2014.3001.5501
参考官方文档地址
https://learn.microsoft.com/en-us/sql/t-sql/functions/eomonth-transact-sql?view=sql-server-ver16
2、语法
EOMONTH ( start_date [ , month_to_add ] )
3、参数
-
start_date
日期表达式,指定要为其返回该月的最后一天的日期。 -
month_to_add
可选的整数表达式,指定要加到 start_date 的月份数。
如果 month_to_add 参数具有值,则 EOMONTH 向 start_date 添加指定月份数,然后返回结果日期所在月份的最后一天 。 如果此加法溢出有效日期范围,则 EOMONTH 引发错误。
4、返回类型
date
5、注解
该 EOMONTH 函数可以远程连接到运行 SQL Server 2012(11.x)及更高版本的实例。 它不能远程连接到 SQL Server 2012(11.x)之前的版本实例。
6、示例
6.1、具有显式 datetime 类型的 EOMONTH
DECLARE @date DATETIME = '12/1/2024';
SELECT EOMONTH(@date) AS Result;
GO
Result
----------
2024-07-31
(1 行受影响)
6.2、具有字符串参数与隐式转换的 EOMONTH
DECLARE @date VARCHAR(255) = '2024-07-27';
SELECT EOMONTH(@date) AS Result;
GO
Result
----------
2024-07-31
(1 行受影响)
6.3、具有和不具有 month_to_add 参数的 EOMONTH
以下结果集中显示的值反映了执行日期范围 2024-07-31 到 2024-08-31(含这两个日期)。
DECLARE @date DATETIME = '2024-07-27';
SELECT EOMONTH(@date) AS 'This Month';
SELECT EOMONTH(@date, 1) AS 'Next Month';
SELECT EOMONTH(@date, -1) AS 'Last Month';
GO
下面是执行结果集
This Month
----------
2024-07-31
(1 行受影响)
Next Month
----------
2024-08-31
(1 行受影响)
Last Month
----------
2024-06-30
(1 行受影响)