我使用下面的查询来获取一个月中的周数:
datepart(day, datediff(day, 0,TABLE.DATE), 102))/7 * 7)/7 + 1
现在我需要更改脚本,如果一个星期在下个月结束,它应该显示1
而不是5
。
有人可以帮助我吗?
答案 0 :(得分:1)
使用Modulo
乘以4,您可以获得月份编号1
而不是5
。
对于我在第5周进行测试的示例,其结果为1
:
DECLARE @TestDate AS DATETIME = '2016-07-29 10:00:00';
SELECT CASE ((DATEPART(DAY, DATEDIFF(DAY, 0, @TestDate)) /7 * 7) /7 + 1) % 4
WHEN 0 THEN 4
ELSE ((DATEPART(DAY, DATEDIFF(DAY, 0, @TestDate)) /7 * 7) /7 + 1) % 4 END
在您的查询中,您错误地使用了DATEPART
。实际上它只需要2个参数。