2013-08-06 85 views
0

您好我想獲得一個數據庫來返回一些值,具體而言,我需要返回每個發票之間的前一個星期一到星期天。返回數據庫值取決於日期而不是日期

原因是這個查詢會在不同的日子裏運行,例如我需要返回8月5日星期一到8月11日星期的結果,以便在下一週(12到18日)的某個時間點。

我原本這個設置爲一個簡單的WHERE:

[WHERE TaxDate> =(GETDATE() - 7)]

,因爲發票是做每週一所以它的工作本身,但是現在可以在下一週的任何一天完成。有什麼功能可以用來做這件事嗎?

感謝

+0

你會發送什麼論據 –

回答

2

看與上週參數的一天datepart功能:

WHERE Datepart(dw, TaxDate) = 2 
0
declare @currentdow int 
declare @delta int 
declare @startdate datetime 
declare @endtime datetime 
set @delta = 0 
set @startofweek = DatePart(dw, getDate()) 
while @scurrentdow <> 2 
begin 
    set @delta = @delta + 1 
    set @currentdow = @currentdow - 1 
    if @currentdow < 1 
    begin 
    set @currentdow = 7 
    end 
end 
set @startdate = DateSubtract(day,GetDate(), delta) 
set @enddate = DateAdd(day, @startdate, 6) 

長篇大論,而接近我的想法。

相關問題