2014-12-04 6 views
4

любые советы оценилиSSRS - название дня недели

У меня есть как заголовок столбца в expression =WeekdayName(weekday(fields!date.value))

Это возвращает день недели, однако, она возвращается в день недели один день заранее, например, когда я помещал даты понедельника в параметр, который он показывает как «вторник» в отчете.

Мой вопрос: может ли указанное выражение быть изменено, чтобы показать WeekdayName за день до этого, eg =WeekdayName(weekday(fields!date.value -1))? Я пробовал это, но получил ошибку.

Спасибо.

ответ

4

Итак, вы хотите, чтобы вычесть один день из входящей даты, то вы можете использовать

= DateAdd("d", -1, yourdateField) 

Таким образом, вы можете вычесть любое количество дней от даты.

Но вы пытались понять, почему он дает день предыдущей даты. Проверьте время системной даты или проверьте с помощью

=WeekdayName(weekday(Today())) 

и посмотрите, дает ли он правильный день недели для текущей даты.

+0

Спасибо, что вернулись. То, что я хочу сделать, это изменить, где он говорит «Вторник» на «понедельник» и т. Д., Поэтому данные в отчете фактически сообщают о правильных днях. Например, в тот момент, когда я запускаю отчет за 1/12/14, он говорит «вторник», и я хочу переместить это обратно в день. Что касается того, почему он дает предыдущую дату, я в первую очередь озадачен и проведу отдельное расследование. Благодарю. –

+0

Вы можете пойти с 'DateAdd' и' -1', чтобы сократить день с вашей даты, чтобы вы могли иметь свой предыдущий день. –

+0

Да, это сработало отлично - = WeekdayName (weekday (dateadd («D», - 1, поля! Date.value))) - спасибо, что взяли на себя труд вернуться ко мне. –

4

Функции дня и дня недели имеют и другой необязательный аргумент для определения начального дня недели. Проблема заключается в том, что 2 функции не применяют этот аргумент к одному и тому же значению, поэтому в зависимости от настроек вашего сервера вы должны явно задать второй аргумент этих функций.

0

Не нужно использовать функцию даты. Как возвращения буднего дня() функции и целое можно компенсировать результат и использовать оператор Mod, чтобы держать его в пределах:

=WeekdayName((weekday(fields!date.value)+5) Mod 7)+1) 

Скобка имеют важное значение для обеспечения добавления приходит первым.

Смежные вопросы