Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Converti varchar in datetime in sql che ha millisec

Puoi utilizzare lo stile 121 ma puoi avere solo 3 cifre per millisecondi (cioè 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)

Quindi puoi risolverlo limitando il campo varchar a 23 caratteri prima di convertirlo come:

declare @abc varchar(100)='2011-09-26 16:36:57.810000' 
select convert(datetime,convert(varchar(23),@abc),121)

Oppure usa Left() funzione per ottenere i primi 23 caratteri come:

select convert(datetime,left(@abc,23),121)

Cerca di evitare di memorizzare la data come stringa.