Vous pouvez utiliser le style 121, mais vous ne pouvez avoir que 3 chiffres pour les millisecondes (c'est-à-dire yyyy-mm-dd hh:mi:ss.mmm(24h)
).
declare @abc varchar(100)='2011-09-26 16:36:57.810'
select convert(datetime,@abc,121)
Vous pouvez donc trier en limitant le champ varchar à 23 caractères avant de convertir en :
declare @abc varchar(100)='2011-09-26 16:36:57.810000'
select convert(datetime,convert(varchar(23),@abc),121)
Ou utilisez le Left()
fonction pour obtenir les 23 premiers caractères comme :
select convert(datetime,left(@abc,23),121)
Essayez d'éviter de stocker la date sous forme de chaîne.