Если вы можете допустить использование только компонента даты, используйте маску 103, как вы делали в своем ответе. Если вам также нужен компонент времени, тогда мы можем попробовать пройти через маску формата 120 с некоторыми манипуляциями со строкой:
CONVERT(datetime, SUBSTRING(act.InteractionDate, 7, 4) + '-' +
SUBSTRING(act.InteractionDate, 4, 2) + '-' + LEFT(act.InteractionDate, 2) +
' ' + RIGHT(act.InteractionDate, 5), 120)
Демо
В идеале, мы должны иметь возможность использовать маску 131 напрямую, но я не мог заставить ее работать, по крайней мере, не с тем типом данных, который у вас есть. Вместо этого приведенный выше фрагмент вручную создает временную метку в формате yyyy-mm-dd hh:mi:ss
.
Лучшее долгосрочное решение здесь - не хранить информацию о дате в виде текста. Если вы должны сделать это, то вы в формате ISO, который легко конвертировать с помощью встроенных функций SQL Server.