Преобразование типа данных char в тип данных datetime привело к тому, что значение даты и времени выходит за допустимые пределы.

Я хочу взять подстроку значения в столбце «2010-11-10 11:59:00» до «2010-11-10»:

SELECT CONVERT(DATETIME, SUBSTRING(CONVERT(VARCHAR(15), CONVERT(DATETIME, export_date, 105)),0,15),101) 
  FROM TABLE

Я написал следующий запрос, но он не приводит к этой ошибке:

Преобразование типа данных char в тип данных datetime привело к тому, что значение даты и времени выходит за допустимые пределы.


person SmartestVEGA    schedule 11.11.2010    source источник


Ответы (2)


Попробуйте что-то вроде

SELECT DATEADD(dd,0, DATEDIFF(dd,0,CONVERT(DATETIME, '2010-11-10 11:59:00',101)))

Выход

2010-11-10 00:00:00.000
person Adriaan Stander    schedule 11.11.2010
comment
Привет. Как твои дела. Эти вопросы возникают в различных форматах, и всегда полезно знать приемы преобразования. ИКС-) - person Adriaan Stander; 11.11.2010

ВЫБЕРИТЕ подстроку (конвертировать (varchar (15), конвертировать (varchar (15), export_date, 105)), 0,11) из

person SmartestVEGA    schedule 11.11.2010
comment
Если вы публикуете код или XML, пожалуйста выделите эти строки в текстовом редакторе и нажмите кнопку кода (101 010) на панели инструментов редактора, чтобы правильно отформатировать и выделить синтаксис! - person marc_s; 11.11.2010