Du kan använda stil 121 men du kan ha bara tre siffror för 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 reda ut det genom att begränsa varchar-fältet till 23 tecken innan du konverterar som:
declare @abc varchar(100)='2011-09-26 16:36:57.810000'
select convert(datetime,convert(varchar(23),@abc),121)
Eller använd Left()
funktion för att få de första 23 tecknen som:
select convert(datetime,left(@abc,23),121)
Försök att undvika att lagra datum som sträng.