2016-12-07 271 views
0

我需要一个简单的sql脚本,我可以在两周前和星期六前两周之间抓取行。SQL上周获取间隔(星期日到星期六)

我需要查询来返回元素,无论本周的哪一天我运行查询。

可以说,我运行查询今天:周四12月2016年(2016年12月8日)

我需要得到这个区间:

SELECT * FROM table WHERE date BETWEEN '11-27-2016' AND '12-03-2016' 
+0

什么'你的数据库? – Mihai

+0

@Mihai Microsoft SQL Server – TobiasKnudsen

+0

有很多种方法可以做到这一点。 (dateadd(week,-2,getdate() - t.num)as date)startDate,cast(getdate() - t.num - 1 as date)endDate from(values('sunday' ('星期四',1),('星期二',2),('星期三',3),('星期四',4),('星期五',5),('星期六',6) ))t(name,num)where datename(weekday,getdate())= t.name' – ZLK

回答

-1

您可以使用: SELECT *从表其中date NEXT_DAY(日期, '太阳')之间 - 21 AND NEXT_DAY(日期, 'SAT') - 14

+0

next_day()在MSSQL服务器中不是公认的函数 –

+0

我认为你在考虑Oracle。 –

1
DECLARE @StartInterval DATE, 
     @EndInterval DATE, 
     @Today = GETDATE() 

SET @EndInterval = DATEADD(dd,-1,DATEADD(dd,-1*(DATEPART(dw,@Today)-1),@Today)) 
SET @StartInterval = DATEADD(dd,-6,@EndInterval) 

SELECT * 
FROM table 
WHERE date BETWEEN @StartInterval AND @EndInterval 
+0

注意:这通常会起作用,但要求您的'datefirst'为7(星期日,默认,但不一定是此值)。 – ZLK

相关问题