Вот еще один способ сделать это без использования BETWEEN:
WHERE @date >= start_date AND @date <= end_date
Это должно быть эквивалентно.
Также обратите внимание, что часто то, что вы действительно хотите, этополуоткрытый интервал:
WHERE @date >= start_date AND @date < end_date
Если вы выполняете пейджинг, использование полуоткрытого интервала позволяет избежать повторения значений в конце одной страницы в начале следующей.Вы не можете выразить это с помощью синтаксиса BETWEEN.