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.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Endpoint de analítica SQL en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Devuelve el resultado de una expresión, traducido al tipo de dato solicitado, o NULL si el cast falla en SQL Server. Úsalo TRY_PARSE solo para convertir de cadenas a fechas/hora y tipos de números.
Convenciones de sintaxis de Transact-SQL
Sintaxis
TRY_PARSE ( string_value AS data_type [ USING culture ] )
Argumentos
string_value
Valor nvarchar(4000) que representa el valor con formato que se va a analizar en el tipo de datos especificado.
string_value debe ser una representación válida del tipo de dato solicitado, o TRY_PARSE devuelve nulo.
data_type
Literal que representa el tipo de datos solicitado para el resultado.
culture
Cadena opcional que identifica la referencia cultural en la que se da formato a string_value.
Si no se proporciona el argumento de referencia cultural , se usa el idioma de la sesión actual. Este lenguaje se establece implícita o explícitamente mediante el uso de la SET LANGUAGE sentencia.
la cultura acepta cualquier cultura soportada por el .NET Framework. No se limita a los lenguajes que soporta explícitamente SQL Server. Si el argumento de referencia cultural no es válido, PARSE genera un error.
Tipos de retorno
Devuelve el resultado de la expresión, traducido al tipo de dato solicitado, o NULL si falla el cast.
Observaciones
Úsalo TRY_PARSE solo para convertir de cadenas a fechas/hora y tipos de números. Para conversiones generales de tipos, continúe usando CAST o CONVERT. Ten en cuenta que hay cierta sobrecarga de rendimiento al analizar el valor de la cadena.
TRY_PARSE se basa en la presencia del lenguaje común de ejecución (CLR) .NET Framework.
Esta función no se puede remoto, ya que depende de la presencia de CLR. El envío remoto de una función que necesita el CLR produciría un error en el servidor remoto.
Más información sobre el data_type parámetro
Los valores del parámetro data_type están restringidos a los tipos que aparecen en la tabla siguiente, junto con estilos. La información de estilo se proporciona como ayuda para determinar los tipos de modelos permitidos. Para más información sobre estilos, consulte la documentación de .NET Framework para las System.Globalization.NumberStyles enumeraciones de y (y DateTimeStyles enumeraciones).
| Category | Tipo | Tipo de .NET | Estilos usados |
|---|---|---|---|
| Numeric | bigint | Int64 |
NumberStyles.Number |
| Numeric | int | Int32 |
NumberStyles.Number |
| Numeric | smallint | Int16 |
NumberStyles.Number |
| Numeric | tinyint | Byte |
NumberStyles.Number |
| Numeric | decimal | Decimal |
NumberStyles.Number |
| Numeric | numeric | Decimal |
NumberStyles.Number |
| Numeric | float | Double |
NumberStyles.Float |
| Numeric | real | Single |
NumberStyles.Float |
| Numeric | smallmoney | Decimal |
NumberStyles.Currency |
| Numeric | dinero | Decimal |
NumberStyles.Currency |
| Fecha y hora | date | DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
| Fecha y hora | time | TimeSpan |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
| Fecha y hora | datetime | DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
| Fecha y hora | smalldatetime | DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
| Fecha y hora | datetime2 | DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
| Fecha y hora | datetimeoffset | DateTimeOffset |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Más información sobre el culture parámetro
En la tabla siguiente se muestran las asignaciones de los idiomas de SQL Server a las referencias culturales de .NET Framework.
| Nombre completo | Alias | LCID | Referencia cultural específica |
|---|---|---|---|
| us_english | Inglés | 1033 | en-US |
| Deutsch | Alemán | 1031 | de-DE |
| Français | Francés | 1036 | fr-FR |
| 日本語 | Japonés | 1041 | ja-JP |
| Dansk | Danés | 1030 | da-DK |
| Español | Español | 3082 | es-ES |
| Italiano | Italiano | 1040 | it-IT |
| Nederlands | Neerlandés | 1043 | nl-NL |
| Norsk | Noruego | 2068 | nn-NO |
| Português | Portugués | 2070 | pt-PT |
| Suomi | Finés | 1035 | fi-FI |
| Svenska | Sueco | 1053 | sv-SE |
| čeština | Checo | 1029 | Cs-CZ |
| magyar | Húngaro | 1038 | Hu-HU |
| polski | Polaco | 1045 | Pl-PL |
| română | Rumano | 1048 | Ro-RO |
| hrvatski | Croata | 1050 | hr-HR |
| slovenčina | Eslovaco | 1051 | Sk-SK |
| slovenski | Esloveno | 1060 | Sl-SI |
| ελληνικά | Griego | 1032 | El-GR |
| български | Búlgaro | 1026 | bg-BG |
| русский | Ruso | 1049 | Ru-RU |
| Türkçe | Turco | 1055 | Tr-TR |
| British | Inglés británico | 2057 | en-GB |
| eesti | Estonio | 1061 | Et-EE |
| latviešu | Letón | 1062 | lv-LV |
| lietuvių | Lituano | 1063 | lt-LT |
| Portugués (Brasil) | Portugués (Brasil) | 1046 | pt-BR |
| 繁體中文 | Chino tradicional | 1028 | zh-TW |
| 한국어 | Coreano | 1042 | Ko-KR |
| 简体中文 | Chino simplificado | 2052 | zh-CN |
| Árabe | Árabe | 1025 | ar-SA |
| ไทย | Tailandés | 1054 | Th-TH |
Ejemplos
A. Ejemplo básico de TRY_PARSE
SELECT TRY_PARSE ('Jabberwokkie' AS DATETIME2 USING 'en-US') AS Result;
Esta consulta devuelve un resultado de NULL.
B. Detectar nulos con TRY_PARSE
SELECT
CASE WHEN TRY_PARSE ('Aragorn' AS DECIMAL USING 'sr-Latn-CS') IS NULL
THEN 'True'
ELSE 'False'
END AS Result;
Esta consulta devuelve un resultado de True.
C. Usa IIF con TRY_PARSE y un ajuste de cultura implícita
SET LANGUAGE English;
SELECT IIF (TRY_PARSE ('01/01/2011' AS DATETIME2) IS NULL, 'True', 'False') AS Result;
Esta consulta devuelve un resultado de False.