2013-04-21 1 views
1

У меня есть запрос, который строится на основе некоторых данных, и мне нужно, чтобы иметь возможность добавить параметр @StartDate в строке, но я получаю следующую ошибкукак добавить переменные даты в SQL строки

Ошибка конверсии при преобразовании даты и/или времени из символьной строки.

Часть запроса, как это:

DECLARE @StartDate DATETIME 
DECLARE @EndDate DATETIME 
DECLARE @where = '' 
... 

SET @where = @where + '(initDate BETWEEN ' + @StartDate + ' AND ' + @EndDate + ')' 

Как я могу добавить StartDate и EndDate там, не причиняя этот вопрос? Я попытался CONVERT(DATETIME, @StartDate), но получить тот же вопрос

+0

Какая строка вы прошли? –

+0

a datetime like 01/01/2010 12:00 AM – jedgard

+0

Ваш пример неоднозначен. Какой день и какой месяц? –

ответ

2

Постарайся это

SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,104) + ' AND ' + convert(varchar(10),@EndDate,104) + ')' 

ИЛИ

SET @where = @where + '(initDate BETWEEN ' + convert(varchar(10),@StartDate,106) + ' AND ' + convert(varchar(10),@EndDate,106) + ')' 
0

Просто используйте CAST or CONVERT изменить @StartDate и @EndDate в строку. Выберите подходящий метод по ссылке, которая даст вам необходимый уровень точности.

Смежные вопросы