使用 CONVERT 并提取周数

Using CONVERT and extracting a week number

我正在尝试从“EndDate”列(nvarchar 数据类型)中获取周数。 转换函数在下面工作正常。

SELECT 
EndDate,
CONVERT(DATE,EndDate,113) as "Date",

Output from the above code

现在,我想提取一个周数。最好的方法是什么?我尝试了 datepart() 但很难将其合并到我的转换函数中。

要从日期中提取周数,您可以使用 datename 或 datepart tfunction

select datename(week, '20220408'),
       datename(iso_week, '20220408'),
       datepart(week, '20220408'),
       datepart(iso_week, '20220408')

returns

COLUMN1 COLUMN2 COLUMN6 COLUMN4
15 14 15 14

至于在转换函数中使用它,您为什么要这样做?
该函数在日期和日期时间上的作用相同,所以只需像这样使用它

SELECT EndDate,
       CONVERT(DATE, EndDate, 113) as "Date",
       datepart(week, EndDate)

或者如果你真的想要

datepart(week, convert(date, EndDate, 113))