我试图在构造视图的SELECT查询中使用DATEPART函数。DATEPART的目的是返回传递给它的日期的周数。我要求一周的开始是星期一,默认情况下是星期天。我不能使用Set DATEFIRST 1
,因为我想在视图中使用Datepart。
。让我们使用日期'2021-01-31'作为[date]
DATEPART(WEEK,DATE) --returns week 6 with @@DATEFIRST = 7
DATEPART(WEEK,DATE) --returns week 5 with @@DATEFIRST = 1
请大家多多指教。
我可以提供这样的解决方案:
declare
@DATE date='2021-01-31'
select DATEPART(WEEK,@DATE) --returns week 6 with @@DATEFIRST = 7
,DATEPART(WEEK,case when datepart(dw, @DATE)=1 then dateadd(dd, -1, @DATE) else @DATE end) --returns week 5 with @@DATEFIRST = 1