У меня есть отчет SSRS, в котором, помимо прочего, указаны параметры даты начала и окончания.Для даты начала и окончания можно установить параметр NULL.Правило состоит в том, что если дата начала равна нулю, то полученные данные начинаются с начала времени.Если конечная дата равна нулю, то она устанавливается на сегодняшнюю дату.Вот что я пытаюсь сделать здесь:
SELECT *
FROM mytab
WHERE (Start >= CASE @From
WHEN NULL
THEN DATEADD(year, -100, @From)
END)
AND (End <= CASE @To
WHEN NULL THEN GETDATE()
END)
В качестве теста я объявляю переменные @From и @To в своем запросе, устанавливаю их в NULL и запускаю в SSMS.
Я хочу сказать, что если @From равно нулю, установить значение 100 лет назад и сравнить его с полем mytab «Пуск».Аналогично, если @To равно нулю, установите его на сегодняшнюю дату и сравните с «Конец».Однако это не возвращает никаких данных.Это явно неправильно, так как правильно это сделать?