Трябва да бъде, ако изобщо:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
но не използвате ISDATE С CONVERT, тъй като няма израз като
ISDATE(CONVERT(varchar,ColumnName,112))
без вложеното преобразуване връщаната стойност зависи от неща като езикови настройки, следователно това е недетерминирано поведение. Без „външно“ знание не е възможно да се предвиди резултатът, който човек получава, въз основа само на въведените данни.