На ваш вопрос уже дан ответ, но ИМХО, лучше не пытаться вычесть отметку, секунду или что-либо еще из конца диапазона, а сравнивать, используя строго меньше, чем.
Так что, если вы хотите, чтобы все даты в диапазоне включительно от startDate до endDate игнорировали время, вы могли бы использовать в C # следующее:
if ((myDate >= startDate.Date) && (myDate < endDate.Date.AddDays(1)))
{
// ... it's in the range
}
или в T-SQL, предполагая, что ваши @StartDate и @EndDate ровно в полночь, что-то вроде:
WHERE SomeDate >= @StartDate AND SomeDate < DATEADD(d,1,@EndDate)
UPDATE
Обновленный пример для отображения включенного диапазона в ответ на комментарии.