Я склонен выполнять все свои запросы как:
select fld from tbl
where date >= &start_date
and date <= &end_date;
Я редко использую between
- СУБД, которую я использую, имеет одинаковую производительность независимо от того, какой из этих методов используется.
Я бы посоветовал сделать несколько таймингов, чтобы увидеть, не происходит ли снижения производительности при использовании where ... and
вместо where ... between
, а затем переключиться, если нет.
Некоторые СУБД фактически исключают «конечные точки» (первую и / или последнюю), которые, вероятно, вы видите. Оператор SQL с двумя предложениями не должен иметь этой проблемы.