Member 12363094 Ответов: 0

Как преобразовать тип данных varchar в datetime?


select top 100 percent *  from RawData  where SiteId=@SitePId and convert(datetime, date, 103) between @StartDate and @EndDate  order by convert(datetime, date, 103)


когда я запускаю выше запрос я получаю ниже ошибку

Ошибка преобразования типа данных varchar в datetime.

здесь столбец даты имеет тип varchar
@startDate - это дата и время
@Enddate - это дата и время

я должен отсортировать столбец даты между startdate и enddate

Что я уже пробовал:

<pre lang="SQL">select top 100 percent *  from RawData  where SiteId=@SitePId and convert(datetime, date, 103) between @StartDate and @EndDate  order by convert(datetime, date, 103)</pre>

when i run above query i am getting below error

Error converting data type varchar to datetime.

Richard MacCutchan

Почему вы пытаетесь обратиться? SQL может сравнивать значения даты и времени.

Member 12363094

потому что я должен получить между данными startdate и enddate которые являются datetime
а столбец даты имеет тип varchar

без преобразования также я получаю ниже ошибку
Ошибка преобразования типа данных varchar в datetime.

Mehdi Gholam

Проверьте данные в ваших столбцах на наличие допустимых значений строки даты.

F-ES Sitecore

Это одна из многих причин, почему вы не храните даты в виде text\varchar. Измените схему базы данных таким образом, чтобы дата была соответствующим полем datetime или date. Это могут быть ненужные данные в вашем столбце даты, это могут быть проблемы с местоположением ... мы не знаем, так как не можем получить доступ к вашей базе данных, но использование правильных типов полей устраняет эти проблемы.

Member 12363094

На самом деле выше в СП
@startDate,@EndDate-это входные параметры с типом данных datatime

Karthik_Mahalingam

Всегда использовать  Ответить  кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

Sahan2u

Это может произойти из-за недопустимой даты для параметров @StartDate или @EndDate, таких как 2016-11-31. В ноябре месяце нет 31.

0 Ответов