2016-12-07 273 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

相關問題