Condividi tramite


TRY_PARSE (Transact-SQL)

Viene restituito il risultato di un'espressione convertito nel tipo di dati richiesto. Se il cast non viene eseguito in modo corretto in SQL Server viene restituito Null. Utilizzare TRY_PARSE solo per la conversione da stringa a data/ora e tipi di numero.

Si applica a: SQL Server (SQL Server 2008 tramite versione corrente), Database SQL di Windows Azure (versione iniziale tramite versione corrente).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

TRY_PARSE ( string_value AS data_type [ USING culture ] )

Argomenti

  • string_value
    Valore nvarchar(4000) che rappresenta il valore formattato da analizzare nel tipo di dati specificato.

    string_value deve essere una rappresentazione valida del tipo di dati richiesto. In caso contrario, viene restituito Null da TRY_PARSE.

  • data_type
    Valore letterale che rappresenta il tipo di dati richiesto per il risultato.

  • culture
    Stringa facoltativa tramite cui vengono identificate le impostazioni cultura in cui viene formattato string_value.

    Se l'argomento culture non è specificato, viene utilizzata la lingua della sessione corrente. La lingua in questione viene impostata in modo implicito o esplicito tramite l'istruzione SET LANGUAGE. Tramite culture viene accettata qualsiasi impostazione cultura supportata da .NET Framework e non è limitato alle lingue supportate in modo esplicito da SQL Server. Se l'argomento culture non è valido, PARSE genera un errore.

Tipi restituiti

Restituisce il risultato dell'espressione convertito nel tipo di dati richiesto. Se il cast non viene eseguito in modo corretto, restituisce Null.

Osservazioni

Utilizzare TRY_PARSE solo per la conversione da stringa a data/ora e tipi di numero. Per le conversioni di tipi generali, continuare a utilizzare CAST o CONVERT. È opportuno ricordare che si verifica un sovraccarico nelle prestazioni durante l'analisi del valore stringa.

TRU_PARSE è basato sulla presenza di CLR (Common Language Runtime) di .NET Framework.

Questa funzione non sarà eseguita in modalità remota poiché dipende dalla presenza di CLR. L'esecuzione in modalità remota di una funzione che richiede CLR provocherebbe un errore sul server remoto.

Ulteriori informazioni sul parametro data_type

I valori per il parametro data_type sono limitati ai tipi mostrati nella tabella seguente, insieme con gli stili. Le informazioni sugli stili vengono fornite per determinare i tipi di modelli consentiti. Per ulteriori informazioni sugli stili, vedere la documentazione di .NET Framework per le enumerazioni System.Globalization.NumberStyles e DateTimeStyles.

Category

Tipo

Tipo .NET

Stili utilizzati

Numeric

bigint

Int64

NumberStyles.Number

Numeric

int

Int32

NumberStyles.Number

Numeric

smallint

Int16

NumberStyles.Number

Numeric

tinyint

Byte

NumberStyles.Number

Numeric

decimal

Decimal

NumberStyles.Number

Numeric

numeric

Decimal

NumberStyles.Number

Numeric

float

Double

NumberStyles.Float

Numeric

real

Single

NumberStyles.Float

Numeric

smallmoney

Decimal

NumberStyles.Currency

Numeric

money

Decimal

NumberStyles.Currency

Date e Time

date

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Date e Time

time

TimeSpan

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Date e Time

datetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Date e Time

smalldatetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Date e Time

datetime2

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Date e Time

datetimeoffset

DateTimeOffset

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Ulteriori informazioni sul parametro relativo alle impostazioni cultura

Nella tabella seguente vengono mostrati i mapping dai linguaggi SQL Server alle impostazioni cultura di .NET Framework.

Nome completo

Alias

LCID

Impostazioni cultura specifiche

us_english

Inglese

1033

en-US

Deutsch

Tedesco

1031

de-DE

Français

Francese

1036

fr-FR

日本語

Giapponese

1041

ja-JP

Dansk

Danese

1030

da-DK

Español

Spagnolo

3082

es-ES

Italiano

Italiano

1040

it-IT

Nederlands

Olandese

1043

nl-NL

Norsk

Norvegese

2068

nn-NO

Português

Portoghese

2070

pt-PT

Suomi

Finlandese

1035

fi

Svenska

Svedese

1053

sv-SE

čeština

Ceco

1029

Cs-CZ

magyar

Ungherese

1038

Hu-HU

polski

Polacco

1045

Pl-PL

română

Romeno

1048

Ro-RO

hrvatski

Croato

1050

hr-HR

slovenčina

Slovacco

1051

Sk-SK

slovenski

Sloveno

1060

Sl-SI

ελληνικά

Greco

1032

El-GR

български

Bulgaro

1026

bg-BG

русский

Russo

1049

Ru-RU

Türkçe

Turco

1055

Tr-TR

British

Inglese (Gran Bretagna)

2057

en-GB

eesti

Estone

1061

Et-EE

latviešu

Lettone

1062

lv-LV

lietuvių

Lituano

1063

lt-LT

Português (Brasil)

Brasiliano

1046

pt-BR

繁體中文

Cinese tradizionale

1028

zh-TW

한국어

Coreano

1042

Ko-KR

简体中文

Cinese semplificato

2052

zh-CN

Arabo

Arabo

1025

ar-SA

ไทย

Thai

1054

Th-TH

Esempi

A.Esempio semplice di TRY_PARSE

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

Set di risultati:

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

(1 row(s) affected)

B.Rilevamento di valori Null con TRY_PARSE

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

Set di risultati:

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

(1 row(s) affected)

C.Utilizzo di IIF con TRY_PARSE e impostazioni cultura implicite

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

Set di risultati:

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

(1 row(s) affected)

Vedere anche

Riferimento

PARSE (Transact-SQL)

Funzioni di conversione (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST e CONVERT (Transact-SQL)