您好我正在尝试让数据库返回一些值,具体而言,我需要返回每个星期一到星期日之间的发票。
这样做的原因是这个查询将在不同的日子运行,例如,我需要在8月5日周一 - 8月11日周日的某一周返回结果,在下一周(12-18日)的某个时间点。
我最初把这个设置为一个简单的WHERE:
[WHERE TaxDate> =(GETDATE() - 7)]
因为发票是每个星期一完成的,所以它自己解决了,但现在可以在下一周的任何一天完成。我可以使用任何功能来执行此操作吗?
由于
答案 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)
啰嗦,但我觉得很接近。