Two points:
- You use format parameter 103, that's British format, but your source data has format 120 = ODBC format
- The source data exceed the precise of data type datetime; use datetime2() or date instead => ;with test as (select '2021-04-02 14:33:18.1166667' as string union all select '2021-04-05 18:47:21.9200000' union all select '2021-04-03 10:54:36.5333333' union all select '2021-04-03 21:25:21.8166667') select *, try_convert(datetime2(7), string, 103) as fails, try_convert(datetime2(7), string, 120) as works, try_convert(date, string, 120) as worksToo from test