SSRS: создание разницы между началом дня и временем выполнения
У меня возникла небольшая проблема с отчетом SSRS, который я пытаюсь запустить. Я пытаюсь получить отчет с начала дня (для ежедневного запуска) и времени выполнения.
Я имею:
(Rest of the SQL here)WHERE fa.ReceivedDate between @prmStartDate and %executionTime
В @prmStartDate в настоящее время у меня есть =DateValue(сегодня), который создает ошибку при запуске.
2 ответа
Решение
Разве это не сработает?
where ReceivedDate >= cast(getdate() as date)
and ReceivedDate < getdate()
Если он всегда будет использовать текущую дату, то вы можете использовать функцию GETDATE на SQL-сервере, и вам просто нужен способ, чтобы убрать часть времени на первой дате. Метод, который мне нравится, предлагается здесь.
Ваш код будет выглядеть так:
(Rest of the SQL here)WHERE fa.ReceivedDate between DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) and GETDATE()
Если вы хотите позволить пользователю выбирать данные другого дня, просто добавьте параметр вместо функции GETDATE:
(Rest of the SQL here)WHERE fa.ReceivedDate between @DateParam and DATEADD(dd, 1, @DateParam)