SQL 查询以查找 6 个月时间中该月的最后一天

SQL Query to find the last day of the month in 6 months time

我正在尝试写一些 SQL,它将在 6 个月的时间内给出该月的最后一天。

例如如果我有一个检查日期 15-07-2015 我希望下一个检查日期是 31-01-2016

检查日期可以是任何一个月的任何一天

如有任何建议,我们将不胜感激。

如果我明白了。就是这样

declare @d date = '2015-07-15'
    SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@d)+7,0))

试试这个

declare @FindLastDay datetime
set @FindLastDay=CONVERT(varchar(10),DATEADD(M,6,'2015-07-15'),120)
 SELECT CAST(DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, @FindLastDay) + 1, 0)) as DATE)

输出:

2016-01-31

如果您使用的是 SQL Server 2012+,您可以使用 eomonth 函数获取一个月的最后一天:

declare @d date = '2015-07-15'
select eomonth(@d,6)

结果:2016-01-31

该函数接受一个日期和一个可选的整数,该整数指定要添加到日期参数的月数。

Select DateAdd(D, Day(DateAdd(Month, 7, '2015-07-15')) * -1, DateAdd(M, 7, '2015-07-15'))

给出您期望的答案。