我需要一個簡單的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