Dies scheint ein Fehler in SQL Server selbst zu sein. Ich habe eine sehr einfache Funktion, deren Aufgabe es ist, try_convert(datetime, string arg)
zu emulieren, da mein Kunde es nicht erlaubt, die Datenbank auf die Kompatibilität mit SQL Server 2012 einzustellen.Konvertierung beim Konvertieren von varchar in datetime fehlgeschlagen
extrahiert ich den Start der Funktion und der Testabfrage, wie folgt:
create function spTryConvertDateTime (@pString varchar(255))
returns datetime
as
begin
declare @iresult datetime = null;
declare @string varchar(255) = ltrim(rtrim(isnull(@pString, '')));
declare @datestring varchar(255);
declare @timestring varchar(255);
if len(@string) < 10
return @iresult;
set @datestring = left(@string, 10);
if len(@string) >= 19
set @timestring = substring(@string, 11, len(@string-10));
return null;
end;
go
declare @v varchar(32) = '2017-10-31 00:00:00';
select dbo.spTryConvertDateTime(@v);
Wenn ich versuche, dies zu laufen, bekomme ich folgende Fehlermeldung:
Msg 245, Level 16, State 1, Line 3
Conversion failed when converting the varchar value '2017-10-31 00:00:00' to data type int.
??? Wo versuche ich ALLES in den Datentyp int
zu konvertieren?
Was ist los? Was vermisse ich?
DOH! Danke - ich weiß nicht wie lange ich das angestarrt habe und es nicht gesehen habe. –