Freigeben über


TRY_CONVERT (Transact-SQL)

Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Gilt für: SQL Server (SQL Server 2012 bis aktuelle Version).

Syntax

TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )

Argumente

  • data_type [ ( length ) ]
    Der Datentyp, in den expression umgewandelt werden soll.

  • expression
    Der umzuwandelnde Wert.

  • style
    Ein optionaler ganzzahliger Ausdruck, der angibt, wie die TRY_CONVERT-Funktion expression übersetzen soll.

    style akzeptiert die gleichen Werte wie der style-Parameter der CONVERT-Funktion. Weitere Informationen finden Sie unter CAST und CONVERT (Transact-SQL).

    Der Bereich zulässiger Werte wird durch den Wert von data_type bestimmt. Wenn style NULL ist, gibt TRY_CONVERT NULL zurück.

Rückgabetypen

Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.

Hinweise

TRY_CONVERT versucht, den übergebenen Wert in den angegebenen data_type zu konvertieren. Wenn die Umwandlung erfolgreich ist, gibt TRY_CONVERT den Wert als angegebenen data_type zurück. Bei einem Fehler wird NULL 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 unter Kompatibilitätsgrad 110 und höher.

Diese Funktion kann remote auf Servern mit SQL Server 2012 oder einer höheren Version ausgeführt werden. Eine Remoteausführung auf Servern mit einer Version unter SQL Server 2012 ist nicht möglich.

Beispiele

A.TRY_CONVERT gibt NULL zurück.

Im folgenden Beispiel wird veranschaulicht, dass TRY_CONVERT "NULL" zurückgibt, wenn die Umwandlung fehlerhaft ist.

SELECT 
    CASE WHEN TRY_CONVERT(float, 'test') IS NULL 
    THEN 'Cast failed'
    ELSE 'Cast succeeded'
END AS Result;
GO

Dies ist das Resultset.

Result
------------
Cast failed

(1 row(s) affected)

Im folgenden Beispiel wird veranschaulicht, dass der Ausdruck das erwartete Format aufweisen muss.

SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO

Dies ist das Resultset.

Result
----------------------
NULL

(1 row(s) affected)

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 eine ganze Zahl 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/2010') AS Result;
GO

Dies ist das Resultset.

Result
----------------------------------
2010-12-31 00:00:00.0000000

(1 row(s) affected)

Siehe auch

Verweis

CAST und CONVERT (Transact-SQL)