Condividi tramite


TRY_PARSE (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

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.

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 dati richiesto. In caso contrario, TRY_PARSE restituisce Null.

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 culture non è specificato, viene usata la lingua della sessione corrente. La lingua in questione viene impostata in modo implicito o esplicito tramite l'istruzione SET LANGUAGE. culture accetta 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 visualizzati nella tabella seguente, insieme con gli stili. Le informazioni sugli stili vengono fornite per determinare i tipi di modelli consentiti. Per altre informazioni sugli stili, vedere la documentazione di .NET Framework relativa alle enumerazioni System.Globalization.NumberStyles 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 decimale Decimale NumberStyles.Number
Numeric numeric Decimale NumberStyles.Number
Numerico float Double NumberStyles.Float
Numerico real Singola NumberStyles.Float
Numerico smallmoney Decimale NumberStyles.Currency
Numerico money Decimale NumberStyles.Currency
Data e ora data Data/Ora DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora Ora TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora datetime DataOra DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora smalldatetime Data/Ora DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora datetime2 Data/Ora DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal
Data e ora 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 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 semplice di TRY_PARSE

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

Il set di risultati è il seguente.

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;  

Il set di risultati è il seguente.

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;

Il set di risultati è il seguente.

Result  
---------------  
False  
  
(1 row(s) affected)  

Vedi anche

PARSE (Transact-SQL)
Funzioni di conversione (Transact-SQL)
TRY_CONVERT (Transact-SQL)
CAST e CONVERT (Transact-SQL)