select * from
invoices inv
where inv.created_date >= dateadd(dd, 0, datediff(dd, 0, @startdate))
and inv.created_date < dateadd(dd, 1, datediff(dd, 0, @enddate))
Прежде всего, не конвертируйте даты начала / окончания и даты столбца в varchar, и если вы это сделаете, помните, что 105
(возвращает дд-мм-гггг) несопоставимо, 112
(возвращает ггггммдд) будет лучше (если вас интересует только часть даты).Но то, что я сказал, лучше не конвертировать и просто сравнивать даты.
Добавлено :
И небольшое объяснение: dateadd(dd, 0, datediff(dd, 0, @startdate))
- возвращает только часть даты datetime, dateadd(dd, 1, datediff(dd, 0, @startdate))
- возвращает только часть даты следующего дня.
Запрос возвращает все строки для ваших параметров включительно (независимо от часа).