如何获得周数SQL Server 2014



如何在SQL Server 2014中获得基于当前日期的周数?

请注意,每年应该从2月1日开始,到1月31日结束

Week从周日到周六开始

您可以获得自2月1日以来的周数,然后使用它来计算周数:

select (case when month(getdate()) < 2
             then datediff(week,
                           datefromparts(year(getdate()) - 1, 2, 1),
                           getdate()
                          )
             else datediff(week,
                           datefromparts(year(getdate()), 2, 1),
                           getdate()
                          )
         end)

注意:datefromparts()是在SQL Server 2012中引入的。您可以对字符串和日期进行类似的操作。

试试这个

SELECT CASE WHEN MONTH(GETDATE()) < 2 THEN (DATEPART(DAYOFYEAR,DATEADD(M,11,GETDATE())))/7 
            ELSE ((DATEPART(DAYOFYEAR,GETDATE())-31)/7)+1 
        END 
  declare @DATE_INSERT date='02-01-2014'
 select DATEPART(WK,@DATE_INSERT) - DATEPART(WK,DATEADD(DAY,1,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@DATE_INSERT),0)))) + 1

取决于您如何定义周数,但您可以尝试:

SELECT DATEPART( wk, DATEADD('mm',-1,getdate()))