sql >> Base de Datos >  >> RDS >> Sqlserver

Convierta varchar a fecha y hora en sql que tiene milisegundos

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.