Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de análisis SQL en Microsoft Fabric
Almacenamiento en Microsoft Fabric
Devuelve un valor convertido al tipo de datos especificado si la conversión se realiza correctamente; de lo contrario, devuelve NULL
.
Convenciones de sintaxis de Transact-SQL
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Tipo de datos al que se va a convertir expression.
Entero opcional que especifica la longitud del tipo de datos de destino para los tipos de datos que permiten una longitud especificada por el usuario. El valor máximo de longitud es de 8000 bytes.
Valor que se va a convertir.
Expresión entera opcional que especifica cómo se va a traducir la TRY_CONVERT
función.
style acepta los mismos valores que el parámetro style de la CONVERT
función. Para obtener más información, vea CAST y CONVERT.
El valor de data_type determina el intervalo de valores aceptables. Si style es NULL
, devuelve TRY_CONVERT
NULL
.
Devuelve un valor convertido al tipo de datos especificado si la conversión se realiza correctamente; de lo contrario, devuelve NULL
.
TRY_CONVERT
toma el valor que se le ha pasado e intenta convertirlo al data_type especificado. Si la conversión se realiza correctamente, TRY_CONVERT
devuelve el valor como el data_type especificado; si se produce un error, NULL
se devuelve. Sin embargo, si se solicita una conversión que no se permite explícitamente, se producirá un error en TRY_CONVERT
.
TRY_CONVERT
es una palabra clave reservada, a partir del nivel 110
de compatibilidad .
Esta función es capaz de ser remota a los servidores que tienen SQL Server 2012 (11.x) y versiones posteriores. No está remoto a los servidores que tienen una versión anterior a SQL Server 2012 (11.x).
En el ejemplo siguiente se muestra que TRY_CONVERT
devuelve NULL
cuando se produce un error en la conversión.
SELECT
CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Este es el conjunto de resultados.
Result
------------
Cast failed
En el ejemplo siguiente se demuestra que la expresión debe tener el formato esperado.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Este es el conjunto de resultados.
Result
----------------------
NULL
En el ejemplo siguiente, se muestra que TRY_CONVERT
devuelve un error cuando la conversión no está explícitamente permitida.
SELECT TRY_CONVERT(XML, 4) AS Result;
GO
El resultado de esta instrucción es un error, ya que un entero no se puede convertir en un tipo de datos xml.
Explicit conversion from data type int to xml is not allowed.
Este ejemplo demuestra que la expresión debe tener el formato esperado.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Este es el conjunto de resultados.
Result
----------------------------------
2022-12-31 00:00:00.0000000