Puede usar el estilo 121 pero puede tener solo 3 dígitos para milisegundos (es decir, yyyy-mm-dd hh:mi:ss.mmm(24h)
) formato.
declare @abc varchar(100)='2011-09-26 16:36:57.810'
select convert(datetime,@abc,121)
Entonces puede resolverlo limitando el campo varchar a 23 caracteres antes de convertirlo como:
declare @abc varchar(100)='2011-09-26 16:36:57.810000'
select convert(datetime,convert(varchar(23),@abc),121)
O use el Left()
función para obtener los primeros 23 caracteres como:
select convert(datetime,left(@abc,23),121)
Trate de evitar almacenar la fecha como cadena.