Если я использую этот запрос он работает, потому что даты одинаковы:Как получить разницу между двумя переменными датами в SSRS
DECLARE @Start datetime
DECLARE @End datetime
DECLARE @ServerName varchar(128)
SET @Start = '2014-01-24'
SET @End = '2014-01-24'
SET @ServerName = 'ServerName'
SELECT ServerName, cntr_value, collection_datetime
FROM PLE
WHERE CONVERT(DATE, collection_datetime) = @Start
AND CONVERT(DATE, collection_datetime) = @End
AND ServerName = @ServerName
Однако, я хочу использовать @start и @end как SSRS поэтому мне нужно просматривать данные с определенного диапазона дат, поэтому я бы подумал, что буду использовать что-то вроде ниже ... кроме того, что это не работает.
DECLARE @Start datetime
DECLARE @End datetime
DECLARE @ServerName varchar(128)
SET @Start = '2014-01-24'
SET @End = '2014-01-27'
SET @ServerName = 'Server'
SELECT ServerName, cntr_value, collection_datetime
FROM PLE
WHERE CONVERT(DATE, collection_datetime) = @Start
BETWEEN CONVERT(DATE, collection_datetime) = @End
AND ServerName = @ServerName
Очевидно, что я не могу использовать МЕЖДУ, но что еще я могу использовать для выполнения этой работы?
Что случилось с 'WHERE CONVERT (ДАТА, collection_datetime) МЕЖДУ @start и @end' ? – StuartLC
@StuartLC Проблема с этим подходом заключается в том, что он делает недействительным возможное использование индексов (индексов), которые OP может определять на 'collection_datetime', эффективно вызывая полное сканирование каждый раз – peterm