我有一个存储过程,可以为我的财务报告创建一个跨越多年的日历表,例如从2015年6月1日到2016年5月31日的年份。我想更改周数计算,以便从2016年6月1日开始计算周数
我发现一些我修改过的代码几乎可以工作但6月的第一周被归类为0而不是1
DATEDIFF(week
,DATEADD(YEAR
,DATEDIFF(MONTH
,'19000601'
,@StartDate
) / 12
,'19000601'
)
,dateadd(d
,6 - datepart(w
,cast(year(@StartDate)
- case when month(@StartDate) < 6
then 1
else 0
end
as char(4)
)
+'0601'
)
,@StartDate
)
) AS WeekNum,
和
datediff(d
,cast(year(@StartDate) - case when month(@StartDate) < 6
then 1
else 0
end
as char(4)
)
+ '0601'
,@StartDate
) / 7 AS WeekNum,