2014-03-31 108 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 

两个区间重叠时,一个接一个的开始后的另一端和第一结束前启动。

相关问题