Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
Restituisce un cast del valore nel tipo di dati specificato se il cast ha esito positivo. In caso contrario, restituisce Null.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
TRY_CAST ( expression AS data_type [ ( length ) ] )
Argomenti
expression
Specifica qualsiasi espressione valida di cui eseguire il cast.
data_type
Tipo di dati in cui eseguire il cast di expression. Questo valore determina l'intervallo di valori accettabili.
length
Numero intero facoltativo con cui si specifica la lunghezza del tipo di dati di destinazione.
Tipi restituiti
Restituisce un cast del valore nel tipo di dati specificato se il cast ha esito positivo. In caso contrario, restituisce Null.
Osservazioni:
TRY_CASTaccetta il valore passato e tenta di convertirlo nel data_type specificato. Se il cast ha esito positivo, TRY_CAST restituisce il valore come data_type specificato. Se si verifica un errore, viene restituito null. Tuttavia, se si richiede una conversione non consentita in modo esplicito, si TRY_CAST verifica un errore.
TRY_CAST non è una nuova parola chiave riservata ed è disponibile in tutti i livelli di compatibilità.
TRY_CAST ha la stessa semantica di TRY_CONVERT quando ci si connette ai server remoti.
TRY_CAST non funziona per un'espressione nei casi seguenti:
- varchar(max) se la lunghezza è superiore a 8.000
- nvarchar(max) se la lunghezza è superiore a 4.000
Esempi
R. Restituzione del valore Null da parte di TRY_CAST
Nell'esempio seguente viene illustrato che TRY_CAST restituisce Null quando il cast ha esito negativo.
SELECT
CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Il set di risultati è il seguente.
Result
------------
Cast failed
Nell'esempio seguente viene dimostrato che l'espressione deve essere nel formato previsto.
SET DATEFORMAT dmy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------
NULL
B. Esito negativo di TRY_CAST con visualizzazione di un errore
Nell'esempio seguente viene illustrato che TRY_CAST restituisce un errore quando il cast non è consentito in modo esplicito.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Il risultato di questa istruzione è un errore, perché non è possibile eseguire il cast di un numero intero in un tipo di dati xml .
Explicit conversion from data type int to xml is not allowed.
C. Esito positivo di TRY_CAST
In questo esempio viene dimostrato che l'espressione deve essere nel formato previsto.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------------------
2022-12-31 00:00:00.0000000