0

以下は私の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か月のデータのみが必要です。

現在、3月からのレコードも返します。

4

3 に答える 3

5

それ以外の

DATEADD(mm, -6, @dEnd)

あなたが使うかもしれない

dateadd(month, datediff(month, 0, @dEnd) - 5, 0)

これにより、日付が現在の月の最初に切り捨てられ、そこから5か月が差し引かれます。

于 2012-09-10T07:30:03.257 に答える
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)
于 2012-09-10T07:35:11.403 に答える
0
DECLARE @dStart datetime ,
    @dEnd  datetime

SET @dEnd = GETDATE()
SET @dStart = DATEADD(mm, -4, @dEnd)
于 2012-09-10T07:36:14.373 に答える