Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Konvertieren Sie varchar in datetime in SQL, das Millisekunden hat

Sie können Stil 121 verwenden, aber nur 3 Stellen für Millisekunden haben (z. B. yyyy-mm-dd hh:mi:ss.mmm(24h) )-Format.

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

Sie können es also sortieren, indem Sie das varchar-Feld auf 23 Zeichen beschränken, bevor Sie es konvertieren als:

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

Oder verwenden Sie die Left() Funktion, um die ersten 23 Zeichen zu erhalten als:

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

Versuchen Sie, das Datum nicht als Zeichenfolge zu speichern.