Es sollte, wenn überhaupt, lauten:
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END
....
aber Sie verwenden ISDATE WITH CONVERT nicht, da es keinen Ausdruck wie
gibtISDATE(CONVERT(varchar,ColumnName,112))
Ohne die verschachtelte Konvertierung ist der Rückgabewert von Dingen wie Spracheinstellungen abhängig, daher ist es nicht deterministisches Verhalten. Ohne "externes" Wissen ist es nicht möglich, das Ergebnis allein aufgrund des Inputs vorherzusagen.