Condividi tramite


TRY_PARSE (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsEndpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricDatabase SQL in Microsoft Fabric

Restituisce il risultato di un'espressione, tradotto nel tipo di dato richiesto, oppure NULL se il cast fallisce in SQL Server. Usa TRY_PARSE solo per convertire da stringhe a dati/ore e tipi numerici.

Convenzioni relative alla 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 dato richiesto, altrimenti TRY_PARSE restituisce nulla.

data_type

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

Impostazioni cultura

Stringa facoltativa che identifica le impostazioni cultura in cui viene formattato string_value.

Se l'argomento delle impostazioni cultura non viene specificato, viene usata la lingua della sessione corrente. Questo linguaggio è impostato implicitamente o esplicitamente usando l'affermazione SET LANGUAGE . la cultura accetta qualsiasi cultura supportata dal .NET Framework. Non è limitato ai linguaggi esplicitamente supportati da SQL Server. Se l'argomento delle impostazioni cultura non è valido, PARSE genera un errore.

Tipi restituiti

Restituisce il risultato dell'espressione, tradotto nel tipo di dato richiesto, oppure NULL se il cast fallisce.

Osservazioni:

Usa TRY_PARSE solo per convertire da stringhe a dati/ore e tipi numerici. Per conversioni generali di tipo, continuare a usare CAST o CONVERT. Tieni presente che c'è un certo overhead di performance nell'analisi del valore della stringa.

TRY_PARSE si basa sulla presenza del linguaggio comune di esecuzione (CLR) .NET Framework.

Questa funzione non può essere remota perché 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 visualizzati nella tabella seguente, insieme con gli stili. Le informazioni sugli stili vengono fornite per determinare i tipi di modelli consentiti. Per maggiori informazioni sugli stili, consulta la documentazione di .NET Framework per le System.Globalization.NumberStyles enumerazioni e DateTimeStyles .

Categoria Type Tipo .NET Stili utilizzati
Numerico bigint Int64 NumberStyles.Number
Numerico int Int32 NumberStyles.Number
Numerico smallint Int16 NumberStyles.Number
Numerico tinyint Byte NumberStyles.Number
Numerico decimal Decimal NumberStyles.Number
Numerico numeric Decimal NumberStyles.Number
Numerico float Double NumberStyles.Float
Numerico reale Single NumberStyles.Float
Numerico smallmoney Decimal NumberStyles.Currency
Numerico denaro Decimal NumberStyles.Currency
Data e ora date DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora datetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora smalldatetime DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora datetime2 DateTime DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora datetimeoffset DateTimeOffset DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Ulteriori informazioni sul parametro culture

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 italiano 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-FI
Svenska Svedese 1053 sv-SE
čeština Ceco 1029 Cs-CZ
magyar Ungherese 1038 Hu-HU
polski Polacco 1045 Pl-PL
română Rumeno 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 (Regno Unito) 2057 en-GB
eesti Estone 1061 Et-EE
latviešu Lettone 1062 lv-LV
lietuvių Lituano 1063 lt-LT
Português (Brasile) Portoghese (Brasile) 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

R. Esempio base di TRY_PARSE

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

Questa query restituisce un risultato di NULL.

B. Rileva i nulli con TRY_PARSE

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

Questa query restituisce un risultato di True.

C. Usa l'IIF con TRY_PARSE e un'impostazione implicita della cultura

SET LANGUAGE English;

SELECT IIF (TRY_PARSE ('01/01/2011' AS DATETIME2) IS NULL, 'True', 'False') AS Result;

Questa query restituisce un risultato di False.