Один из вариантов - использовать простой CASE. Однако, у вас есть неоднозначные даты, такие как 01/11/19
... при условии, что MDY
будет преобразовано в 2019-01-11
Пример
Declare @YourTable Table ([SomeCol] varchar(50),Date date )
Insert Into @YourTable Values
('2019-06-17',null)
,('01/11/19',null)
,('2019-08-21',null)
,('08/04/13',null)
,('10/03/17',null)
,('11/22/08',null)
,('2018-06-07',null)
,('Not a Date',null)
,('2017-31-31',null)
Update @YourTable
set [Date] = case when IsDate(SomeCol)=0 then null else convert(date,SomeCol) end
Select * from @YourTable
Обновленная таблица
SomeCol Date
2019-06-17 2019-06-17
01/11/19 2019-01-11
2019-08-21 2019-08-21
08/04/13 2013-08-04
10/03/17 2017-10-03
11/22/08 2008-11-22
2018-06-07 2018-06-07
Not a Date NULL
2017-31-31 NULL