Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Convertir varchar en datetime en sql qui a millisec

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.