Today I played around with the TRY_PARSE() function and it does work.
Though it’s an expensive one and as we all know, SQL Server isn’t built for handling strings 🙂
DECLARE @dtSQL VARCHAR(10) = '09-2013-13';
SELECT TRY_CAST(@dtSQL AS datetime2) AS [TRY_CAST Result],
TRY_CONVERT(datetime2, @dtSQL) AS [TRY_CONVERT Result],
TRY_PARSE(@dtSQL AS datetime2) AS [TRY_PARSE Result];