Freigeben über


TRY_PARSE (Transact-SQL)

Gibt das Ergebnis eines Ausdrucks zurück, das in den angeforderten Datentyp übersetzt wurde. Schlägt die Umwandlung in SQL Server fehl, wird NULL zurückgegeben. Verwenden Sie TRY_PARSE nur, um eine Zeichenfolge in ein Datum und eine Uhrzeit oder in eine Zahl zu konvertieren.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

TRY_PARSE ( string_value AS data_type [ USING culture ] )

Argumente

  • string_value
    nvarchar(4000)-Wert, der den formatierten Wert darstellt, der als angegebener Datentyp analysiert werden soll.

    string_value muss eine gültige Darstellung des angeforderten Datentyps sein. Andernfalls gibt TRY_PARSE Null zurück.

  • data_type
    Literalwert, der den für das Ergebnis angeforderten Datentyp darstellt.

  • culture
    Optionale Zeichenfolge, die die Kultur angibt, in der string_value formatiert wird.

    Wenn das culture-Argument nicht angegeben wurde, wird die Sprache der aktuellen Sitzung verwendet. Diese Sprache ist entweder implizit definiert oder wird explizit mit der Anweisung SET LANGUAGE festgelegt. culture lässt alle von .NET Framework unterstützten Kulturen zu und ist auf die explizit durch SQL Server unterstützten Sprachen beschränkt. Wenn das culture-Argument nicht gültig ist, löst PARSE einen Fehler aus.

Rückgabetypen

Gibt das Ergebnis des Ausdrucks zurück, das in den angeforderten Datentyp übersetzt wurde. Schlägt die Umwandlung fehl, wird NULL zurückgegeben.

Hinweise

Verwenden Sie TRY_PARSE nur, um eine Zeichenfolge in ein Datum und eine Uhrzeit oder in eine Zahl zu konvertieren. Für die allgemeine Typkonvertierungen sollten Sie auch weiterhin CAST oder CONVERT verwenden. Bedenken Sie, dass die Analyse des Zeichenfolgenwerts mit gewissen Leistungseinbußen verbunden ist.

Für TRY_PARSE muss .NET Framework Common Language Runtime (CLR) vorhanden sein.

Diese Funktion wird nicht remote ausgeführt, da sie die Existenz der CLR voraussetzt. Die Remoteausführung einer Funktion, die die CLR erfordert, würde einen Fehler auf dem Remoteserver auslösen.

Weitere Informationen zum data_type-Parameter

Die Werte für den data_type-Parameter sind auf die in der folgenden Tabelle dargestellten Typen sowie die zugehörigen Formate beschränkt. Die Formatinformationen werden bereitgestellt, um die Ermittlung der zulässigen Mustertypen zu unterstützen. Weitere Informationen zu Formaten finden Sie in der Dokumentation zu .NET Framework in den Abschnitten zur System.Globalization.NumberStyles-Enumeration und DateTimeStyles-Enumeration.

Kategorie

Typ

.NET-Typ

Verwendete Formate

Numerisch

bigint

Int64

NumberStyles.Number

Numerisch

int

Int32

NumberStyles.Number

Numerisch

smallint

Int16

NumberStyles.Number

Numerisch

tinyint

Byte

NumberStyles.Number

Numerisch

decimal

Decimal

NumberStyles.Number

Numerisch

numeric

Decimal

NumberStyles.Number

Numerisch

float

Double

NumberStyles.Float

Numerisch

real

Single

NumberStyles.Float

Numerisch

smallmoney

Decimal

NumberStyles.Currency

Numerisch

money

Decimal

NumberStyles.Currency

Datum und Uhrzeit

date

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Datum und Uhrzeit

time

TimeSpan

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Datum und Uhrzeit

datetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Datum und Uhrzeit

smalldatetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Datum und Uhrzeit

datetime2

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Datum und Uhrzeit

datetimeoffset

DateTimeOffset

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Weitere Informationen zum culture-Parameter

In der folgenden Tabelle werden die Zuordnungen von SQL Server-Sprachen zu .NET Framework-Kulturen angezeigt.

Vollständiger Name

Alias

LCID

Bestimmte Kultur

us_english

Englisch

1033

de-DE

Deutsch

Deutsch

1031

de-DE

Français

Französisch

1036

fr-FR

日本語

Japanisch

1041

ja-JP

Dansk

Dänisch

1030

da-DK

Español

Spanisch

3082

es-ES

Italiano

Italienisch

1040

it-IT

Nederlands

Niederländisch

1043

nl-NL

Norsk

Norwegisch

2068

nn-NO

Português

Portugiesisch

2070

pt-PT

Suomi

Finnisch

1035

fi

Svenska

Schwedisch

1053

sv-SE

čeština

Tschechisch

1029

Cs-CZ

magyar

Ungarisch

1038

Hu-HU

polski

Polnisch

1045

Pl-PL

română

Rumänisch

1048

Ro-RO

hrvatski

Kroatisch

1050

hr-HR

slovenčina

Slowakisch

1051

Sk-SK

slovenski

Slowenisch

1060

Sl-SI

ελληνικά

Griechisch

1032

El-GR

български

Bulgarisch

1026

bg-BG

русский

Russisch

1049

Ru-RU

Türkçe

Türkisch

1055

Tr-TR

British

Englisch (britisch)

2057

en-GB

eesti

Estnisch

1061

Et-EE

latviešu

Lettisch

1062

lv-LV

lietuvių

Litauisch

1063

lt-LT

Português (Brasil)

Brasilianisch

1046

pt-BR

繁體中文

Chinesisch (traditionell)

1028

zh-TW

한국어

Koreanisch

1042

Ko-KR

简体中文

Chinesisch (vereinfacht)

2052

zh-CN

Arabic

Arabisch

1025

ar-SA

ไทย

Thai

1054

Th-TH

Beispiele

A.Einfaches Beispiel für TRY_PARSE

SELECT TRY_PARSE('Jabberwokkie' AS datetime2 USING 'en-US') AS Result;

Dies ist das Resultset.

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

(1 row(s) affected)

B.Erkennen von NULL-Werten mit TRY_PARSE

SELECT
    CASE WHEN TRY_PARSE('Aragorn' AS decimal USING 'sr-Latn-CS') IS NULL
        THEN 'True'
        ELSE 'False'
END
AS Result;

Dies ist das Resultset.

Result
---------------
True

(1 row(s) affected)

C.Verwenden von IIF mit TRY_PARSE und impliziter Kultureinstellung

SET LANGUAGE English;
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;

Dies ist das Resultset.

Result
---------------
False

(1 row(s) affected)

Siehe auch

Verweis

PARSE (Transact-SQL)

Konvertierungsfunktionen (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST und CONVERT (Transact-SQL)