Condividi tramite


TRY_CONVERT (Transact-SQL)

Restituisce un cast del valore nel tipo di dati specificato se il cast ha esito positivo. In caso contrario, restituisce Null.

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

Sintassi

TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )

Argomenti

  • data_type [ ( length ) ]
    Tipo di dati in cui eseguire il cast expression.

  • expression
    Il valore di cui eseguire il cast.

  • style
    Espressione intera che specifica il modo in cui la funzione TRY_CONVERT viene utilizzata per convertire expression.

    style accetta gli stessi valori del parametro style della funzione CONVERT. Per ulteriori informazioni, vedere CAST e CONVERT (Transact-SQL).

    L'intervallo di valori accettabili è determinato dal valore di data_type. Se style è Null, TRY_CONVERT restituisce Null.

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_CONVERT accetta il valore passato e tenta di convertirlo nel tipo di dati data_type specificato. Se il cast ha esito positivo, TRY_CONVERT restituisce il valore come l'elemento data_type specificato. Se si verifica un errore, viene restituito Null. Se tuttavia si richiede una conversione non consentita in modo esplicito, TRY_CONVERT restituisce un errore.

TRY_CONVERT è una nuova parola chiave con livello di compatibilità 110.

Questa funzione può essere eseguita in modalità remota in server con versione SQL Server 2012 e successive, ma non in server con versioni precedenti a SQL Server 2012.

Esempi

A.TRY_CONVERT restituisce Null

Nell'esempio seguente viene dimostrato che TRY_CONVERT restituisce Null quando il cast non riesce.

SELECT 
    CASE WHEN TRY_CONVERT(float, 'test') IS NULL 
    THEN 'Cast failed'
    ELSE 'Cast succeeded'
END AS Result;
GO

Set di risultati:

Result
------------
Cast failed

(1 row(s) affected)

Nell'esempio seguente viene dimostrato che l'espressione deve essere nel formato previsto.

SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO

Set di risultati:

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

(1 row(s) affected)

B.TRY_CONVERT restituisce un errore

Nell'esempio seguente viene dimostrato che TRY_CONVERT restituisce un errore quando il cast non è consentito in modo esplicito.

SELECT TRY_CONVERT(xml, 4) AS Result;
GO

Il risultato di questa istruzione è un errore perché il cast di un tipo di dati Integer non può essere eseguito nel tipo di dati xml.

Explicit conversion from data type int to xml is not allowed.

C.TRY_CONVERT ha esito positivo

In questo esempio viene dimostrato che l'espressione deve essere nel formato previsto.

SET DATEFORMAT mdy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO

Set di risultati:

Result
----------------------------------
2010-12-31 00:00:00.0000000

(1 row(s) affected)

Vedere anche

Riferimento

CAST e CONVERT (Transact-SQL)