Нечто подобное будет делать то, что вы хотите. Как только столбец будет в формате даты, вы можете представить его в любом формате. Это не красиво, хотя.
SET DATEFORMAT DMY
SELECT CASE WHEN ISDATE(yourColumn) = 1 THEN CONVERT(DATETIME, yourColumn)
ELSE CONVERT(DATETIME, SUBSTRING(yourColumn,
CHARINDEX('/', yourColumn, 0)+1,
CHARINDEX('/', yourColumn, CHARINDEX('/', yourColumn, 0)+1) - CHARINDEX('/', yourColumn, 0))
+ STUFF(yourColumn,
CHARINDEX('/', yourColumn, 0),
CHARINDEX('/', yourColumn, CHARINDEX('/', yourColumn, 0)+1) - CHARINDEX('/', yourColumn, 0), '') )
END
FROM yourTable
Это очень хрупкий код. Если вы не уверены, что дата имеет формат dmy или mdy, весьма вероятно, что вы получите неправильные результаты.