Если вы хотите значения после asatdate, почему бы просто не сделать:
where Date1 <= @asAtDate and
(Date3 > @asAtDate or Date3 is null) and
(Date2 > @asAtDate or Date2 is null)
Я не понимаю, почему вы добавляете день к значению, а затем используете [111 ].
Использование 'asAtDate'
предполагает (для меня), что вы вставляете значение непосредственно в строку запроса. Это плохая идея. Вместо этого @asAtDate
предлагает использовать параметры.
[ПРАВИТЬ] Я был неправ; На внешний JS ссылаются так: