以下是我的SQL语句
DECLARE @dStart datetime ,
@dEnd datetime
SET @dEnd = GETDATE()
SET @dStart = DATEADD(mm, -6, @dEnd)
Select * from MyTable
Where TheDate Between @dStart AND @dEnd
这将返回今天的所有记录减去6个月的数据。
但我希望这个月数据加上前5个月的数据。
目前它也将从三月返回记录。
答案 0 :(得分:5)
而不是
DATEADD(mm, -6, @dEnd)
您可以使用
dateadd(month, datediff(month, 0, @dEnd) - 5, 0)
这会将日期截断到当月的第一个月,并从中扣除五个月。
答案 1 :(得分:0)
declare @date datetime
declare @months int
declare @year int
set @months=month(GETDATE())
set @year=month(GETDATE())
set @date=getdate()
(Select * from MyTable Where TheDate Between (01/@months-5/@year) AND (01/@months/@year) ) union (Select * from MyTable Where TheDate Between (01/@months/@year) AND @date)
答案 2 :(得分:0)
DECLARE @dStart datetime ,
@dEnd datetime
SET @dEnd = GETDATE()
SET @dStart = DATEADD(mm, -4, @dEnd)