gpt4 book ai didi

sql - T-SQL - 根据周数获取开始和结束日期。

转载 作者:行者123 更新时间:2023-12-04 06:04:14 24 4
gpt4 key购买 nike

我们的业务从(周一至周日)考虑一周。我需要编写一个 T-SQL 函数,该函数传入年、周号作为参数,它将返回该周的开始和结束日期。但是我看过很多例子,但问题出在重叠的一年之内。

例如 2011 年 12 月 26 日(星期一)- 2012 年 1 月 1 日(星期日)... << 想将此视为 2011 年的最后一周。

而且在 T-SQL 中 datepart(ww,DATE) 将星期日视为一周的开始?

或者我是否更好地创建自己的表并存储其开始和结束日期?

最佳答案

DECLARE
@Year INT,
@Week INT,
@FirstDayOfYear DATETIME,
@FirstMondayOfYear DATETIME,
@StartDate DATETIME,
@EndDate DATETIME

SET @Year = 2011
SET @Week = 52

-- Get the first day of the provided year.
SET @FirstDayOfYear = CAST('1/1/' + CAST(@YEAR AS VARCHAR) AS DATETIME)

-- Get the first monday of the year, then add the number of weeks.
SET @FirstMondayOfYear = DATEADD(WEEK, DATEDIFF(WEEK, 0, DATEADD(DAY, 6 - DATEPART(DAY, @FirstDayOfYear), @FirstDayOfYear)), 0)

SET @StartDate = DATEADD(WEEK, @Week - 1, @FirstMondayOfYear)

-- Set the end date to one week past the start date.
SET @EndDate = DATEADD(WEEK, 1, @StartDate)

SELECT @StartDate AS StartDate, DATEADD(SECOND, -1, @EndDate) AS EndDate

关于sql - T-SQL - 根据周数获取开始和结束日期。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com