SQL Server: конвертировать из VARCHAR в DATETIME - PullRequest
0 голосов
/ 04 марта 2019

Текущий формат даты: 12-18-2018-03: 14: 48

Я хочу преобразовать в: 2018-12-18 03: 14

В настоящее время используется SQL Server 2008

Я использую этот синтаксис кода:

DECLARE @input VARCHAR(35) = '12-18-2018-03:14:48'

SELECT CONVERT(DATETIME, @input, 120)

Ошибка:

Преобразование типа данных varchar в тип данных datetime привело кзначения диапазона

Пожалуйста, помогите.Спасибо!

1 Ответ

0 голосов
/ 04 марта 2019

Я не уверен, что ваш текущий литерал datetime попадает в любую маску, которую может распознать SQL Server.Но мы можем попытаться использовать TRY_CONVERT здесь, заменив средний тире пробелом:

SELECT TRY_CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;

18/12/2018 03:14:48

Демо

Редактировать:

Если вы используете более раннюю версию SQL Server, которая не поддерживает TRY_CONVERT, то мы можем явно попытаться использовать CONVERT:

SELECT CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...