У меня есть отчет SSRS (2008R2 3.0), который использует фильтры параметров для рабочей недели в формате YYYYWW. В 2018 году было 52 рабочих недели по стандарту ISO ( источник ).
Для значения параметра по умолчанию я выбираю последний WW, используя следующую формулу:
DATEPART(DateInterval.Year, DATEADD("d", -7, now())) & FORMAT(DATEPART(DateInterval.WeekOfYear, DATEADD("d", -7, now())), "00")
По какой-то странной причине это вернулось 201853
. Из того, что я понимаю, это должно быть 201852
с учетом даты запуска 20180106
.
Я знаю, что в T-SQL я могу определить тип возврата, используя ISO_WEEK
, но есть ли эквивалент для DateInterval в SSRS?
Для упрощения:
DATEPART(DateInterval.WeekOfYear, DATEADD("d",-7,now()))
Возвращает 53 вместо 52 при запуске с 201801-201807.
Есть идеи, почему это возвращает неправильное значение WeekOfYear?