0

嗨,我正在尝试让数据库返回一些值,具体来说,我需要返回日期在前一个星期一到星期日之间的每张发票。

这样做的原因是该查询将在不同的日子运行,例如,我需要在下一周(12 日至 18 日)的某个时间返回 8 月 5 日星期一至 8 月 11 日星期日这一周的结果。

我最初将其设置为一个简单的 WHERE:

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

因为发票是在每个星期一完成的,所以它自己解决了,但现在可以在下一周的任何一天完成。我可以使用任何功能来执行此操作吗?

谢谢

4

2 回答 2

2

查看带有星期几参数的datepart函数:

WHERE Datepart(dw, TaxDate) = 2
于 2013-08-06T12:24:27.610 回答
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)

长篇大论,但我认为很接近。

于 2013-08-06T13:01:53.520 回答