Compartilhar via


TRY_PARSE (Transact-SQL)

Retorna o resultado de uma expressão, convertido no tipo de dados solicitado, ou nulo se a conversão falha no SQL Server. Use TRY_PARSE somente para converter da cadeia de caracteres em data/hora e tipos numéricos.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

TRY_PARSE ( string_value AS data_type [ USING culture ] )

Argumentos

  • string_value
    Valor nvarchar(4000) que representa o valor formatado para analisar no tipo de dados especificado.

    string_value deve ser uma representação válida do tipo de dados solicitado, ou TRY_PARSE retorna nulo.

  • data_type
    Literal que representa o tipo de dados solicitado para o resultado.

  • culture
    Cadeia de caracteres opcional que identifica a cultura na qual string_value é formatado.

    Se o argumento culture não for fornecido, o idioma da sessão atual será usado. Esse idioma é definido implícita ou explicitamente com o uso da instrução SET LANGUAGE. culture aceita qualquer cultura com suporte do .NET Framework. Ela não se limita aos idiomas com suporte explícito do SQL Server. Se o argumento culture não for válido, PARSE gerará um erro.

Tipos de retorno

Retorna o resultado da expressão, convertido no tipo de dados solicitado, ou nulo se a conversão falhar.

Comentários

Use TRY_PARSE somente para converter da cadeia de caracteres em data/hora e tipos numéricos. Para conversões de tipos gerais, continue a usar CAST ou CONVERT. Lembre-se de que há uma certa sobrecarga de desempenho na análise do valor da cadeia de caracteres.

TRY_PARSE depende da presença do CLR (Common Language Runtime) do .NET Framework.

Essa função não será remota uma vez que ela depende da presença do CLR. Uma função remota que exige o CLR provocará um erro no servidor remoto.

Mais informações sobre o parâmetro data_type

Os valores para o parâmetro data_type serão restringidos aos tipos mostrados na tabela a seguir, juntamente com estilos. As informações de estilo são fornecidas para ajudar a determinar que tipos de padrões são permitidos. Para obter mais informações sobre estilos, consulte a documentação do .NET Framework para as enumerações System.Globalization.NumberStyles e DateTimeStyles.

Categoria

Tipo

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

Data e hora

date

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Data e hora

hora

TimeSpan

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Data e hora

datetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Data e hora

smalldatetime

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Data e hora

datetime2

DateTime

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Data e hora

datetimeoffset

DateTimeOffset

DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

Mais informações sobre o parâmetro culture

A tabela a seguir mostra os mapeamentos de idiomas do SQL Server para culturas do .NET Framework.

Nome completo

Alias

LCID

Cultura específica

us_english

Inglês

1033

en-US

Deutsch

Alemão

1031

de-DE

Français

Francês

1036

fr-FR

日本語

Japonês

1041

ja-JP

Dansk

Dinamarquês

1030

da-DK

Español

Espanhol

3082

es-ES

Italiano

Italiano

1040

it-IT

Nederlands

Holandês

1043

nl-NL

Norsk

Norueguês

2068

nn-NO

Português

Português

2070

pt-PT

Suomi

Finlandês

1035

fi

Svenska

Sueco

1053

sv-SE

čeština

Tcheco

1029

Cs-CZ

magyar

Húngaro

1038

Hu-HU

polski

Polonês

1045

Pl-PL

română

Romano

1048

Ro-RO

hrvatski

Croata

1050

hr-HR

slovenčina

Eslovaco

1051

Sk-SK

slovenski

Esloveno

1060

Sl-SI

ελληνικά

Grego

1032

El-GR

български

Búlgaro

1026

bg-BG

русский

Russo

1049

Ru-RU

Türkçe

Turco

1055

Tr-TR

British

Inglês britânico

2057

en-GB

eesti

Estoniano

1061

Et-EE

latviešu

Letão

1062

lv-LV

lietuvių

Lituano

1063

lt-LT

Português (Brasil)

Português do Brasil

1046

pt-BR

繁體中文

Chinês tradicional

1028

zh-TW

한국어

Coreano

1042

Ko-KR

简体中文

Chinês simplificado

2052

zh-CN

Árabe

Árabe

1025

ar-SA

ไทย

Tailandês

1054

Th-TH

Exemplos

A.Exemplo simples de TRY_PARSE

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

Aqui está o conjunto de resultados.

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

(1 row(s) affected)

B.Detectando nulos com TRY_PARSE

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

Aqui está o conjunto de resultados.

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

(1 row(s) affected)

C.Usando IIF com TRY_PARSE e configuração de cultura implícita

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

Aqui está o conjunto de resultados.

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

(1 row(s) affected)

Consulte também

Referência

PARSE (Transact-SQL)

Funções de conversão (Transact-SQL)

TRY_CONVERT (Transact-SQL)

CAST e CONVERT (Transact-SQL)