Конвертировать дд / мм / гггг в дату в SQL Server
Я схожу с ума, пытаясь преобразовать столбец типа строки в дату.
Имя столбца StartDate
, который содержит строковый формат даты dd/mm/yyyy
, Тип поля varchar(3000)
,
Я попробовал следующее:
CONVERT(datetime, StartDate, 103)
CAST(CONVERT(VARCHAR(10), StartDate, 110) AS DATE)
CONVERT(DATE, RIGHT(StartDate, 4) + '-' + SUBSTRING(StartDate, 4, 2) + '-' + LEFT(StartDate, 2), 126)
и другие подобные комбинации.
Я продолжаю получать сообщения об ошибках "вне диапазона" и "сбой преобразования".
У кого-нибудь есть креативное решение?
1 ответ
Решение
Я подозреваю, что у вас есть поддельные данные. Например
Select try_convert(date, '15/07/2014', 103)
Возвращает
2014-07-15
Если 2012+, я бы предложил вам
Select *
From YourTable
Where try_convert(date, StartDate, 103) is null
Это определит ваши проблемные области