Просто чтобы проиллюстрировать мой комментарий, вот как вы можете переписать свой текущий фильтр, используя BETWEEN
.
Я не собираюсь предполагать, что существуют какие-либо правила относительно значений в [from] и [to], которые могут быть меньше других или равны. Если бы были такие правила, возможно, это можно было бы упростить.
И на самом деле, обдумывая это достаточно, чтобы записать это, я вижу, что логика не так сложна, как я первоначально думал. Однако я бы не назвал это «упрощением» того, что у вас уже есть.
WHERE
([from] <= [to] AND GETDATE() NOT BETWEEN [from] AND [to]) --in this case it's a simple NOT BETWEEN
OR
([from] > [to]) --if [from] is greater than [to] then actually every possible value of getdate must be either greater than [to] or less than [from]