Compartir a través de


TRY_PARSE (Transact-SQL)

Devuelve el resultado de una expresión, traducido al tipo de datos solicitado, o NULL si se produce un error en la conversión en SQL Server 2012. Use TRY_PARSE solo para convertir de tipos de cadena a tipos de fecha y hora y de número.

Icono de vínculo a temas 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 datos solicitado; de lo contrario, TRY_PARSE devuelve NULL.

  • 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 culture, se usará el idioma de la sesión actual. Este idioma se establece implícitamente, o explícitamente mediante la instrucción SET LANGUAGE. culture acepta cualquier referencia cultural compatible con .NET Framework; no se limita a los idiomas admitidos explícitamente por SQL Server. Si el argumento culture no es válido, PARSE produce un error.

Tipos de valor devuelto

Devuelve el resultado de la expresión, traducido al tipo de datos solicitado, o NULL si se produce un error en la conversión.

Comentarios

Use TRY_PARSE solo para convertir de tipos de cadena a tipos de fecha y hora y de número. Para las conversiones de tipos generales, siga usando CAST o CONVERT. Tenga en cuenta que hay cierta sobrecarga de rendimiento al analizar el valor de cadena.

TRY_PARSE se basa en la presencia de Common Language Runtime (CLR) de .NET Framework.

Esta función no se enviará de forma remota puesto que depende de la presencia del 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 acerca del parámetro data_type

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 obtener más información acerca de los estilos, vea las enumeraciones System.Globalization.NumberStyles y DateTimeStyles en la documentación de .NET Framework.

Categoría

Tipo

Tipo de .NET

Estilos usados

Numérico

bigint

Int64

NumberStyles.Number

Numérico

int

Int32

NumberStyles.Number

Numérico

smallint

Int16

NumberStyles.Number

Numérico

tinyint

Byte

NumberStyles.Number

Numérico

decimal

Decimal

NumberStyles.Number

Numérico

numeric

Decimal

NumberStyles.Number

Numérico

float

Double

NumberStyles.Float

Numérico

real

Single

NumberStyles.Float

Numérico

smallmoney

Decimal

NumberStyles.Currency

Numérico

money

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 acerca del parámetro culture

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

es-es

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

Finlandés

1035

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 Reino Unido

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

Arabic

Árabe

1025

ar-SA

ไทย

Tailandés

1054

Th-TH

Ejemplos

A.Ejemplo simple de TRY_PARSE

SELECT TRY_PARSE('Jabberwokkie' AS datetime2 USING 'es-es') AS Result;

El conjunto de resultados es el siguiente.

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

(1 row(s) affected)

B.Detectar valores NULL con TRY_PARSE

SELECT
    CASE WHEN TRY_PARSE('Aragorn' AS decimal USING 'sr-Latn-CS') IS NULL
        THEN 'True'
        ELSE 'False'
END
AS Result;

El conjunto de resultados es el siguiente.

Result
---------------
True

(1 row(s) affected)

C.Usar IIF con TRY_PARSE y la configuración implícita de referencia cultural

SET LANGUAGE English;
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;

El conjunto de resultados es el siguiente.

Result
---------------
False

(1 row(s) affected)

Vea también

Referencia

PARSE (Transact-SQL)

Funciones de conversión (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST y CONVERT (Transact-SQL)