在SQL Server中获取每周给定的一周数,月份数和年份的日期范围
我正在创建存储过程以基于周数,月份数和年份数在日期范围内显示某些记录。在SQL Server中获取每周给定的一周数,月份数和年份的日期范围
例如:
Month = 4 [APRIL]
Week = 2 [Week 2 for APRIL]
Year = 2017
输出应该是:开始一天应该是星期天]
STARTDATE | END DATE
4-2-2017 | 4-8-2017
到处搜寻,有这个一个已经很难。
编辑: 我提供了一个示例查询,以供参考
@Month int,
@Year int,
@WeekNumber int
SELECT
(start date of the week based on week num, month, year) as DATE1,
(end date of the week based on week num, month, year) as DATE2
WHERE
StartDate = (start date of the week based on week num, month, year)
EndDate = (end date of the week based on week num, month, year)
这或许可以提供帮助。
示例更新了2008年
Declare @Month int = 4
Declare @Year int = 2017
Declare @Week int = 2
Select DateR1 = min(RetVal)
,DateR2 = max(RetVal)
From (
Select *,WkNr = Dense_Rank() over (Order by DatePart(WEEK,RetVal))
From (Select Top (40) RetVal=DateAdd(DD,-1+Row_Number() Over (Order By Number),cast(str((@Year*10000)+(@Month*100)+1,8) as date)) From master..spt_values) D
) A
Where [email protected]
返回
DateR1 DateR2
2017-04-02 2017-04-08
“'DateFromParts'不是公认的内置函数名称。” - 我正在使用2008 R2。 –
@TheNoob肯定会给我片刻 –
。一个快速的反馈将不胜感激 –
这可能有助于 https://www.sqlservercentral.com/Forums/FindPost1328016.aspx – CurseStacker
谢谢。但不幸的是,我没有回答我的问题。需要的参数是周数,月数和年份,而不是完整的日期。 –
你能包括你要执行查询的位置的示例数据吗? – CurseStacker