我正在尝试在表格中设置月份的周数。逻辑是第一周从第一个星期的第一天开始,直到第一个星期日,其余的星期在每个星期一开始。我在实现这个方面遇到了麻烦。有任何想法吗?我的代码看起来像这样。
我以前曾在这里获得过帮助,以类似的方式设定整年的周数。它看起来如下:
UPDATE [DimTime]
SET [WeekNumberOfYear] = DATEPART(WEEK,[Date]) - CASE WHEN DATEPART(WEEKDAY,[Date]) in (1) THEN 1 ELSE 0 END
答案 0 :(得分:1)
这应该会给你一个正确的结果:
UPDATE [HMDBDataMartBOS].[dbo].[Dimension.DimTime]
SET [NaturalWeekNumberOfYear] = datediff(d, datediff(d, 0,
dateadd(m, datediff(m, 0, [Date]), 0))/7*7 - 7,[Date])/7
答案 1 :(得分:0)
这样的东西?
--Sample data
DECLARE @bob TABLE(dat DATE)
INSERT INTO @bob VALUES ('2012/04/01'), ('2012/04/06'), ('2012/04/07'), ('2012/04/08'),('2012/04/15'),('2012/04/30')
SET DATEFIRST 1 -- make Monday the first day of the week
--and the results
SELECT DATEPART(DAY,dat)/7 + 1 MonthWeek
FROM @bob