我需要一个简单的sql脚本,我可以在两周前和星期六前两周之间抓取行。SQL上周获取间隔(星期日到星期六)
我需要查询来返回元素,无论本周的哪一天我运行查询。
可以说,我运行查询今天:周四12月2016年(2016年12月8日)
我需要得到这个区间:
SELECT * FROM table WHERE date BETWEEN '11-27-2016' AND '12-03-2016'
我需要一个简单的sql脚本,我可以在两周前和星期六前两周之间抓取行。SQL上周获取间隔(星期日到星期六)
我需要查询来返回元素,无论本周的哪一天我运行查询。
可以说,我运行查询今天:周四12月2016年(2016年12月8日)
我需要得到这个区间:
SELECT * FROM table WHERE date BETWEEN '11-27-2016' AND '12-03-2016'
您可以使用: SELECT *从表其中date NEXT_DAY(日期, '太阳')之间 - 21 AND NEXT_DAY(日期, 'SAT') - 14
next_day()在MSSQL服务器中不是公认的函数 –
我认为你在考虑Oracle。 –
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
注意:这通常会起作用,但要求您的'datefirst'为7(星期日,默认,但不一定是此值)。 – ZLK
什么'你的数据库? – Mihai
@Mihai Microsoft SQL Server – TobiasKnudsen
有很多种方法可以做到这一点。 (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