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) 
Другие вопросы по тегам