TRY_CONVERT (Transact-SQL)
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse 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 ] )
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
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 eine reservierte Schlüsselwort (keyword), beginnend mit der Kompatibilitätsstufe110
.
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 ist das Resultset.
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 ist das Resultset.
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 ist das Resultset.
Result
----------------------------------
2022-12-31 00:00:00.0000000
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für