Converting from char(26) to datetime2
You should change double-quotes by single-quotes.

'.', ':'





CREATE TABLE MyTable(EXP_DATE varchar(26));
INSERT INTO MyTable (EXP_DATE ) VALUES ('2011-05-30-13.06.56.824000');
GO



1 rows affected






SELECT CONVERT(datetime2,
               CONCAT(LEFT (EXP_DATE, 10), ' ',
                      REPLACE (SUBSTRING (EXP_DATE, 12, 8), '.', ':'),
                      RIGHT (EXP_DATE, 7)),
               21)
FROM MyTable;
GO



| (No column name)    |
| :------------------ |
| 30/05/2011 13:06:56 |



dbfiddle here