Конвертировать дд / мм / гггг в дату в 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

Это определит ваши проблемные области

Другие вопросы по тегам