TRY_CONVERT (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce un cast di valori al tipo di dati specificato se il cast ha esito positivo; in caso contrario, restituisce NULL
.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Argomenti
data_type
Tipo di dati in cui eseguire il cast di expression.
length
Intero facoltativo che specifica la lunghezza del tipo di dati di destinazione per i tipi di dati che consentono una lunghezza specificata dall'utente. Il valore massimo per la lunghezza è 8.000 byte.
expression
Valore di cui eseguire il cast.
style
Espressione integer facoltativa che specifica la modalità di conversione dell'espressione da parte della TRY_CONVERT
funzione.
style accetta gli stessi valori del parametro di stile della CONVERT
funzione. Per altre informazioni, vedere CAST e CONVERT.
Il valore di data_type determina l'intervallo di valori accettabili. Se style è NULL
, TRY_CONVERT
restituisce NULL
.
Tipi restituiti
Restituisce un cast di valori al 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 data_type specificato. Se il cast ha esito positivo, TRY_CONVERT
restituisce il valore come data_type specificato; se si verifica un errore, NULL
viene restituito . Tuttavia, se si richiede una conversione non consentita in modo esplicito, si TRY_CONVERT
verifica un errore.
TRY_CONVERT
è una parola chiave riservata, a partire dal livello 110
di compatibilità .
Questa funzione è in grado di essere remota ai server con SQL Server 2012 (11.x) e versioni successive. Non è remoto ai server con una versione precedente a SQL Server 2012 (11.x).
Esempi
R. TRY_CONVERT restituisce NULL
Nell'esempio seguente viene illustrato che TRY_CONVERT
restituisce NULL
quando il cast ha esito negativo.
SELECT
CASE WHEN TRY_CONVERT(FLOAT, 'test') 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_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------
NULL
B. TRY_CONVERT restituisce un errore
Nell'esempio seguente viene illustrato 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é 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. 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/2022') AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------------------
2022-12-31 00:00:00.0000000