如何计算周时,不跨年?

场景:

计算week时,涉及年末的周与下一年年初的周被计算为同一周

例:

2024-12-30,2024-12-31 分别是周一和周二,2025-01-01 是周三,此时使用 week 函数会得到如下结果:

week(2024-12-30)    // 返回1
week(2024-12-31)    // 返回1
week(2025-01-01)    // 返回1

但希望 2024-12-302024-12-31 预期应该得到 53,可以采用下面的正确写法:

IF week([日期]) =1 and MONTH([日期]) = 12
THEN week(DATEADD("day", -7, [日期]))+1
else week([日期])
// 返回53