2013-08-06 62 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) 

长篇大论,而接近我的想法。

相关问题