SQL Server 星期五日期从周数开始



我在MS SQL Server中有下表,其中包含年份和周数:

Year               Week
-----             ------
2015               33
2014               41
2016               40

如何获得第三列,其中每行都有相应星期五的日期?因此,2015 年第 33 周应该回归:2015 年 8 月 14 日,星期五。我尝试使用Datefromparts(year, 1, week * 7-1),因为Excel中使用Date的等效函数似乎可以在Excel中解决问题,但是Datefromparts不适用于有效范围之外的整数。

谢谢。

试试这个

DECLARE @Year INT = 2016
DECLARE @Week INT = 40
SELECT DATEADD(dd, 5, (DATEADD(wk, DATEDIFF(wk, 6, '1/1/' + CAST(@Year AS VARCHAR)) + (@Week-1), 6)))

也许你可以修改这个函数:

CREATE FUNCTION [dbo].[fn_GetFirstDateOfWeek] (@YearNum int, @WeekNum int)
RETURNS datetime
AS
BEGIN 
DECLARE @FirstWeekDay As Date;
SET @FirstWeekDay = dateadd (week, @WeekNum, dateadd(year, @YearNum-1900, 0)) - 4 - datepart(dw, dateadd(week, @WeekNum, dateadd (year, @YearNum-1900, 0)) - 4) + 1
RETURN @FirstWeekDay
END

最新更新