如何在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()))