我正在努力撰写一份声明,该声明将返回一年和两年前上周六的可比日期。因此,如果上周六是2018-01-06我需要它返回2017-01-07和2016-01-09。以下代码返回2017-01-07(正确)和2016-01-02(不正确)。
见下面的代码:
StrToMember("[Sales Period].[Sales Period].[Week Desc].&
[" + Format(DateAdd("d",
- DatePart("w", DateAdd("yyyy", -2, Now()), 1),
DateAdd("yyyy", -2, Now())),
"yyyy-MM-ddT00:00:00") +
"]")
--returns 2017-01-07
StrToMember("[Sales Period].[Sales Period].[Week Desc].&
[" + Format(DateAdd("d",
- DatePart("w", DateAdd("yyyy", -2, Now()), 1)-7,
DateAdd("yyyy", -2, Now())),
"yyyy-MM-ddT00:00:00") +
"]")
-- returns 2016-01-02
任何有问题的想法是什么?我觉得我在这里过度了。
感谢。
答案 0 :(得分:0)
这是通过使用DateAdd(“ww”, - 52,Now()))和DateAdd(“ww”,-104,Now())来解决的,因为我们对星期六的定义基于滚动52周,而不是1年。