您可以使用下列组合datepart,并dateadd找到了一周的第一天和最后一天。可能不是最有效的方法,因为我不是 SQL 开发人员,但它会起作用。默认设置有几周从周日开始到周六结束。
declare @dw_number smallint,
@to_first_dw smallint,
@to_last_dw smallint,
@wk_begin_date datetime,
@wk_end_date datetime,
select @dw_number = datepart(dw,getdate()) //get day of week number
select @to_first_dw = (@dw_number -1) * -1, //get number of days to subtract to get week start
@to_last_dw = 7 - @dw_number //get number of days to add to get week end
select @wk_begin_date = dateadd(dd,@to_first_dw,getdate()),
@wk_end_date = dateadd(dd,@to_last_dw,getdate())
select @wk_begin_date, @wk_end_date
Run Code Online (Sandbox Code Playgroud)