Du kan bruge stil 121, men du kan have kun 3 cifre i millisekunder (dvs. 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)
Så du kan sortere det ved at begrænse varchar-feltet til 23 tegn, før du konverterer som:
declare @abc varchar(100)='2011-09-26 16:36:57.810000'
select convert(datetime,convert(varchar(23),@abc),121)
Eller brug Left()
funktion for at få de første 23 tegn som:
select convert(datetime,left(@abc,23),121)
Prøv at undgå at gemme dato som streng.