TRY_CONVERT (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt einen Wert zurück, der in den angegebenen Datentyp umwandeln wird, wenn die Umwandlung erfolgreich ist; andernfalls wird zurückgegeben NULL
.
Transact-SQL-Syntaxkonventionen
Syntax
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Argumente
data_type
Der Datentyp, in den expressionumgewandelt werden soll.
length
Eine optionale ganze Zahl, die die Länge des Zieldatentyps angibt, falls eine vom Benutzer angegebene Länge für den Datentyp zulässig ist. Der Maximalwert für die Länge beträgt 8.000 Byte.
expression
Der zu umwandelnde Wert.
style
Optionaler ganzzahliger Ausdruck, der angibt, wie die TRY_CONVERT
Funktion den Ausdruck übersetzen soll.
Formatvorlage akzeptiert dieselben Werte wie der Formatvorlagenparameter der CONVERT
Funktion. Weitere Informationen finden Sie unter CAST und CONVERT.
Der Wert von data_type bestimmt den Bereich zulässiger Werte. Wenn die Formatvorlage lautet NULL
, wird TRY_CONVERT
der Wert zurückgegeben NULL
.
Rückgabetypen
Gibt einen Wert zurück, der in den angegebenen Datentyp umwandeln wird, wenn die Umwandlung erfolgreich ist; andernfalls wird zurückgegeben NULL
.
Hinweise
TRY_CONVERT
versucht, den übergebenen Wert in den angegebenen data_typezu konvertieren. Wenn die Umwandlung erfolgreich ist, TRY_CONVERT
wird der Wert wie der angegebene data_type zurückgegeben. Wenn ein Fehler auftritt, NULL
wird dieser zurückgegeben. Wenn Sie jedoch eine Konvertierung anfordern, die explizit nicht zulässig ist, verursacht TRY_CONVERT
einen Fehler.
TRY_CONVERT
ist ein reserviertes Schlüsselwort, beginnend mit der Kompatibilitätsstufe 110
.
Diese Funktion ist in der Lage, server mit SQL Server 2012 (11.x) und höheren Versionen remote zu werden. Es ist nicht remote auf Server mit einer Version vor SQL Server 2012 (11.x) entfernt.
Beispiele
A. TRY_CONVERT gibt NULL zurück.
Im folgenden Beispiel wird veranschaulicht, dass TRY_CONVERT
zurückgegeben wird NULL
, wenn die Umwandlung fehlschlägt.
SELECT
CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
------------
Cast failed
Im folgenden Beispiel wird veranschaulicht, dass der Ausdruck das erwartete Format aufweisen muss.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
----------------------
NULL
B. Bei TRY_CONVERT tritt ein Fehler auf.
Im folgenden Beispiel wird veranschaulicht, dass TRY_CONVERT
einen Fehler zurückgibt, wenn die Umwandlung explizit nicht zulässig ist.
SELECT TRY_CONVERT(XML, 4) AS Result;
GO
Das Ergebnis dieser Anweisung ist ein Fehler, da ein Integer nicht in einen XML-Datentyp umgewandelt werden kann.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CONVERT ist erfolgreich.
In diesem Beispiel wird veranschaulicht, dass der Ausdruck das erwartete Format aufweisen muss.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
----------------------------------
2022-12-31 00:00:00.0000000