У меня следующие записи в БД ниже - это дата создания каждой записи.SQL-запрос, запрашивающий базу данных между двумя датами
2013-11-09 12: 55: 43,000
2013-10-29 19: 01: 53,000
2013-10-29 04: 59: 42,000
Мой SQL-запрос выглядит следующим образом
Select d.Name as DealerName, Sum(c.CommissionAmount) as CommissionAmount
from Dealer d
Left join Commission c on c.Dealerid = d.DealerId
where c.CreatedDate between isnull(@FromDate, c.CreatedDate) and isnull(@ToDate, c.CreatedDate)
Group by d.Name
Order by CommissionAmount desc
Когда я вхожу следующие даты в моей функции поиска
с даты = 29/10/2013
на сегодняшний день = 09/11/2013
Это возвращает только одну запись, когда он должен вернуть три, но если я уйду от даты, как это и передать в нуль на К настоящему времени я получаю две записи назад
Может кто-нибудь сказать мне, что я делаю Неправильно здесь?
Благодаря
Я попробовал ваши объявить FromDate DATETIME = '29/10/2013' , Todate DateTime = '09/11/2013 ' Выберите d.Name как имя дилера, сумма (c.CommissionAmount) как Co mmissionAmount от дилера д левое соединение комиссии с на c.Dealerid = d.DealerId , где CAST (c.CreatedDate, как DATE) между CAST (IsNull (FromDate, c.CreatedDate) в качестве даты) и CAST (IsNull (Todate , c.CreatedDate), как DATE) группы по d.Name Сортировать по CommissionAmount алфавита , но я получаю следующее сообщение об ошибке преобразования типа VARCHAR данных в тип данных даты и времени привело к значению вне-диапазона. нужно удалить «@» из переменных –