嗨,我正在尝试让数据库返回一些值,具体来说,我需要返回日期在前一个星期一到星期日之间的每张发票。
这样做的原因是该查询将在不同的日子运行,例如,我需要在下一周(12 日至 18 日)的某个时间返回 8 月 5 日星期一至 8 月 11 日星期日这一周的结果。
我最初将其设置为一个简单的 WHERE:
[WHERE TaxDate >= (GETDATE() - 7)]
因为发票是在每个星期一完成的,所以它自己解决了,但现在可以在下一周的任何一天完成。我可以使用任何功能来执行此操作吗?
谢谢
查看带有星期几参数的datepart函数:
WHERE Datepart(dw, TaxDate) = 2
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)
长篇大论,但我认为很接近。