返回数据库值取决于天数而不是日期

时间:2013-08-06 12:12:50

标签: sql database date where

您好我正在尝试让数据库返回一些值,具体而言,我需要返回每个星期一到星期日之间的发票。

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

我最初把这个设置为一个简单的WHERE:

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

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

由于

2 个答案:

答案 0 :(得分:2)

使用星期几参数查看datepart函数:

WHERE Datepart(dw, TaxDate) = 2

答案 1 :(得分: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)

啰嗦,但我觉得很接近。