2014-03-31 157 views
0

我想找回查詢行根據起始日期和結束日期

例如給定的開始日期和結束日期之間的WeekIDs, 起始日期=慢速英語 結束日期= 2014年2月20日

所以,結果應該是... 201404,201405,201406,201407,201408

enter image description here

我試圖運行類似下面的查詢,但它返回空白。

DECLARE @StartDate DATETIME 
DECLARE @EndDate DATETIME 

SET @StartDate = '20140120' 
SET @EndDate = '20140220' 

SELECT 
    WeekID 
FROM 
    dbo.DimWeeks 
WHERE 
    (@StartDate >= FirstDayOfTheWeek 
    AND @EndDate <= LastDayOfTheWeek) 

回答

0

查詢工作正確的,你越來越沒有記錄,因爲沒有與FirstDayOfTheWeek <= 20140120LastDayOfTheWeek >= 20140220沒有行。

也許你想這個代替:

WHERE 
    (FirstDayOfTheWeek >= @StartDate 
AND LastDayOfTheWeek <= @EndDate) 
0

我想這是你想要什麼:

where @StartDate <= LastDayOfTheWeek and 
     @EndDate >= FirstDayOfTheWeek 

兩個區間重疊時,一個接一個的開始後的另一端和第一結束前啓動。

相關問題