SQL Query在6个月的时间内查找该月的最后一天

时间:2015-09-18 12:23:02

标签: sql-server tsql sql-server-2014

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

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

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

任何建议将不胜感激。

4 个答案:

答案 0 :(得分:5)

如果我明白的话。就是这样

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

答案 1 :(得分:4)

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

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

结果:2016-01-31

该函数采用日期和可选整数,指定要添加到日期参数的月数。

答案 2 :(得分: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

答案 3 :(得分:0)

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

得出你期望的答案。