获取给定日期的周数(周从星期天开始)
问题描述:
我必须计算给定日期的周数,每周的第一天是Sunday
。获取给定日期的周数(周从星期天开始)
这是我在做什么。
DECLARE @Range_StartDate AS DATETIME = '2017-01-01'
SELECT @Range_StartDate,DATEPART(WEEK, @Range_StartDate)
只是一个例子,2016年,第一周从1月3日开始,具有第一周的一天是星期天,我希望提供“2016年1月1日”,它应该返回2016-01- 03年的第一周。
答
您可以使用下面的代码来获取每周的第一天。 例如, 日期:2017年1月1日,第一天将是2017年1月3日00:00:00.000
DECLARE @Date datetime
DECLARE @Year int = YEAR('2017-01-01')
SET @Date = DATEADD(YEAR, @Year - 1900, 0)
SELECT DATEADD(DAY, (@@DATEFIRST - DATEPART(WEEKDAY, @Date) + (8 - @@DATEFIRST) * 2) % 6, @Date)
好了,你的结果应该是' '2017年1月1日00:00:00',1'。还有别的吗? –
2017年的第一周从1月1日开始,如果我设置星期一到星期天的抵消。 – DareDevil
@DareDevil一月一日的第一天?在哪个日历中? –