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.