У меня есть экземпляр системного монитора, который сохраняет данные в таблицу базы данных сервера MS SQL.Данные о производительности сохраняются в таблице с именем CounterData.В таблице есть поле char (24) (counterdatetime) для хранения даты / времени данных.Я пытаюсь обработать это поле как данные даты и времени, но продолжаю получать сообщение «Ошибка при преобразовании при преобразовании даты и / или времени из символьной строки».
Вот пример данных из контрдата: 2019-07-02 09: 19: 46.300
Я пробовал разные варианты CAST и CONVERT, чтобы позволить мне обрабатывать эти данные как дату и время.Например:
SELECT CAST(counterdatetime as datetime) from CounterData
SELECT CAST(counterdatetime as datetime2) from CounterData
SELECT CONVERT(datetime,counterdatetime,101) from CounterData
Каждый дает мне «Преобразование не удалось ...»ошибка.Я подумал, что, возможно, сбой был вызван фиктивным значением в одной записи, поэтому я попытался ограничить преобразование выражением WHERE, которое указывает правильное значение.Я также попытался привести само значение, например:
SELECT CAST('2019-07-02 09:19:46.300' as datetime)
В этом случае CAST работает.
Почему не работает, когда я выбираю значение из таблицы?
ОБНОВЛЕНИЕ
@ Йерун Мостерт предоставил ответ в комментарии, который я разместил в качестве ответа.