Compartir a través de


PARSE (Transact-SQL)

Devuelve el resultado de una expresión, traducido al tipo de datos solicitado en SQL Server 2012.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

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, PARSE produce un error.

  • data_type
    Valor 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.

Comentarios

Los valores NULL que se pasan como argumentos a PARSE se tratan de dos maneras:

  1. Si se pasa una constante NULL, se produce un error. Un valor NULL no se puede analizar en otro tipo de datos diferente teniendo en cuenta la referencia cultural.

  2. Si se pasa un parámetro con un valor NULL en tiempo de ejecución, se devuelve un valor NULL para evitar que se cancele todo el lote.

Use 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.

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 Framework

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

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

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.PARSE en datetime2

SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;

El conjunto de resultados es el siguiente.

Result
---------------
2010-12-13 00:00:00.0000000

(1 row(s) affected)

B.PARSE con símbolo de moneda

SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;

El conjunto de resultados es el siguiente.

Result
---------------
345.98

(1 row(s) affected)

C.PARSE con configuración implícita de idioma

-- The English language is mapped to en-US specific culture
SET LANGUAGE 'English';
SELECT PARSE('12/16/2010' AS datetime2) AS Result;

El conjunto de resultados es el siguiente.

Result
---------------
2010-12-16 00:00:00.0000000

(1 row(s) affected)