返回最近6个月的记录

Eti*_*nne 0 sql t-sql sql-server

下面是我的SQL语句

DECLARE @dStart datetime ,
    @dEnd  datetime

SET @dEnd = GETDATE()
SET @dStart = DATEADD(mm, -6, @dEnd)

Select * from MyTable
Where TheDate Between @dStart AND @dEnd
Run Code Online (Sandbox Code Playgroud)

这将返回今天的所有记录减去6个月的数据.

但我希望这个月数据加上前5个月的数据.

目前它也将从3月返回记录.

Nik*_*vić 5

代替

DATEADD(mm, -6, @dEnd)
Run Code Online (Sandbox Code Playgroud)

你可能会用

dateadd(month, datediff(month, 0, @dEnd) - 5, 0)
Run Code Online (Sandbox Code Playgroud)

这会将日期截断到当月的第一个月,并从中减去五个月.