Сбой преобразования T-SQL при преобразовании даты / времени из символьной строки - PullRequest
1 голос
/ 27 января 2012

Perfmon не так добр к тому, как он создает базу данных при входе непосредственно в SQL:

enter image description here

select top 1 Convert(datetime, CounterDateTime) from CounterData

возвращает

Conversion failed when converting date and/or time from character string.

Значение этой ячейки: «2012-01-25 14: 12: 10.802».Как правильно преобразовать это в поле даты и времени во время выделения?

Ответы [ 3 ]

0 голосов
/ 29 августа 2013

Нет лучшего ответа, но это делает вкус чуть менее горьким.

CAST (CAST (CounterData.CounterDateTime ASAR CHAR (NN)) AS DATETIME) AS CounterDateTime

Также усекает значение, так что дополнительное усечение T-SQL DateTime до минуты, часа и т. Д. Не требуется.

0 голосов
/ 30 марта 2016
CONVERT(DATETIME, SUBSTRING(CounterDateTime, 1, 23), 102)
0 голосов
/ 27 января 2012

Я понял, что следующие работы (вместо CHAR(24) это так):

select top 1 Cast(Cast(CounterDateTime as CHAR(23)) as datetime) from CounterData

Надеюсь, что есть лучшее решение.

...