2015-04-17 51 views
0

我有代碼將數據提取到上個月的最後一天,但我想要記錄過去2年的完整月份,即2013年3月至2015年3月,所以我需要代碼從2013年3月最近2年的記錄 - 完整月份

1日限制這是我迄今爲止

select * from table where Date <= DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)) 
+0

你的問題有點不清楚。你能顯示一些樣本數據和你試圖從中得到的結果嗎? – Mureinik

+0

如果您讓我們瞭解您的表格,這可能會有所幫助。它是否只有一個您想用作過濾器的日期字段?或者還有其他的方式來確定一個條目來自哪裏? – MSB

+0

什麼是sqlserver版本select @@ VERSION' –

回答

2

基於在@CurrentDate通過當前的日期,你可以得到前一個月的最後日期和日期起2年前基於sql下面

DECLARE @CurrentDate DATE = CURRENT_TIMESTAMP 
DECLARE @LastMonthEOMDate DATE 
DECLARE @TwoYearOldDate DATE 

SET @LastMonthEOMDate = DATEADD(DAY,-DATEPART(day,@CurrentDate),@CurrentDate) 
SET @TwoYearOldDate = DATEADD(YEAR,-2,@LastMonthEOMDate) 

SELECT @CurrentDate,@LastMonthEOMDate,@TwoYearOldDate 


select * from table where Date >= @TwoYearOldDate AND Date <= @LastMonthEOMDate