Sql 根据StartDate和EndDate查询行
我想检索给定开始日期和结束日期之间的WeekIDs 比如说,, 起始日期=2014-01-20 结束日期=2014-02-20 所以,结果应该是。。。201404、201405、201406、201407、201408 我试图像下面那样运行查询,但它返回空白Sql 根据StartDate和EndDate查询行,sql,tsql,sql-server-2012,Sql,Tsql,Sql Server 2012,我想检索给定开始日期和结束日期之间的WeekIDs 比如说,, 起始日期=2014-01-20 结束日期=2014-02-20 所以,结果应该是。。。201404、201405、201406、201407、201408 我试图像下面那样运行查询,但它返回空白 DECLARE @StartDate DATETIME DECLARE @EndDate DATETIME SET @StartDate = '20140120' SET @EndDate = '20140220' SELECT
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '20140120'
SET @EndDate = '20140220'
SELECT
WeekID
FROM
dbo.DimWeeks
WHERE
(@StartDate >= FirstDayOfTheWeek
AND @EndDate <= LastDayOfTheWeek)
DECLARE@StartDate-DATETIME
声明@EndDate-DATETIME
设置@StartDate='20140120'
设置@EndDate='20140220'
挑选
小孩
从…起
dbo.DimWeeks
哪里
(@StartDate>=星期一)
并且@EndDate查询工作正常,您没有得到任何记录,因为没有带有firstDayOfWeek=20140220
的行
也许你想要这个:
WHERE
( FirstDayOfTheWeek >= @StartDate
AND LastDayOfTheWeek <= @EndDate)
在哪里
(星期一>=@StartDate
而上周我想这就是你想要的:
where @StartDate <= LastDayOfTheWeek and
@EndDate >= FirstDayOfTheWeek
其中@StartDate=firstdayofweek
当一个在另一端之前开始,而第一个在另一端之后开始时,两个间隔重叠