Teilen über


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