Ang*_*ker 5 sql sql-server-2005 date
我有一个星期数(例如23),我想获取该星期的星期一和星期日的日期。
我假设星期一为一周的第一天(例如,我SET DATEFIRST 1在脚本中输入)。
DECLARE @startweek1 datetime
SET DATEFIRST 1
--first monday of year
SELECT @startweek1 = DATEADD(day, 8-DATEPART(weekday, '2011-01-01'), '2011-01-01')
--day based
SELECT
DATEADD(day, 22 * 7, @startweek1) AS MondayWeek23,
DATEADD(day, 23 * 7 -1 , @startweek1) AS SundayWeek23
--week based
SELECT
DATEADD(week, 22, @startweek1) AS MondayWeek23,
DATEADD(day, -1, DATEADD(week, 23 , @startweek1)) AS SundayWeek23
Run Code Online (Sandbox Code Playgroud)
编辑:
如果第一周没有像安多马尔所说的那样从第一天开始,这个解决方案就有效
编辑2:
根据Wikipedia:2008 年 12 月 29 日是 ISO 中 2009 年第 1 周的第 1 天。
正如安多马尔所说,周数有所不同
Cyberkiwi 提到这段代码在 2007 年是错误的:它错误的次数远不止于此。这同样适用于他的代码,它与 2007 年匹配,但对于其余代码同样是错误的。