Partilhar via


PARSE (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Retorna o resultado de uma expressão, traduzido para o tipo de dado solicitado no SQL Server.

Transact-SQL convenções de sintaxe

Sintaxe

PARSE ( string_value AS data_type [ USING culture ] )  

Arguments

string_value
nvarchar(4000) que representa o valor formatado a analisar no tipo de dado especificado.

string_value deve ser uma representação válida do tipo de dado solicitado, caso contrário o PARSE gera um erro.

data_type
Valor literal que representa o tipo de dado solicitado para o resultado.

cultura
Cadeia opcional que identifica a cultura em que string_value está formatado.

Se o argumento da cultura não for fornecido, então é usada a linguagem da sessão atual. Esta linguagem é definida implicitamente ou explicitamente usando a instrução SET LANGUAGE. a cultura aceita qualquer cultura suportada pelo .NET Framework; não se limita às linguagens explicitamente suportadas pelo SQL Server. Se o argumento da cultura não for válido, PARSE levanta um erro.

Tipos de devolução

Devolve o resultado da expressão, traduzido para o tipo de dado solicitado.

Observações

Os valores nulos passados como argumentos ao PARSE são tratados de duas formas:

  1. Se uma constante nula for passada, surge um erro. Um valor nulo não pode ser analisado num tipo de dado diferente de forma culturalmente consciente.

  2. Se um parâmetro com valor nulo for passado em tempo de execução, então é devolvido um valor nulo, para evitar cancelar todo o lote.

Usa o PARSE apenas para converter de string para data/hora e tipos de números. Para conversões de tipos gerais, continue a usar CAST ou CONVERT. Tenha em mente que existe uma certa sobrecarga de desempenho na análise do valor da cadeia.

O PARSE baseia-se na presença do .NET Framework Common Language Runtime (CLR).

Esta função não será remota, pois depende da presença do CLR. Remover uma função que requer o CLR causaria um erro no servidor remoto.

Mais informações sobre o parâmetro data_type

Os valores para o parâmetro data_type estão restritos aos tipos mostrados na tabela seguinte, juntamente com os estilos. A informação sobre o estilo é fornecida para ajudar a determinar que tipos de padrões são permitidos. Para mais informações sobre estilos, consulte a documentação do .NET Framework para as enumerações System.Globalization.NumberStyles e DateTimeStyles .

Categoria Tipo Tipo do .NET Framework Estilos utilizados
Numeric bigint Int64 EstilosNuméricos.Número
Numeric int Int32 EstilosNuméricos.Número
Numeric Smallint Int16 EstilosNuméricos.Número
Numeric tinyint Byte EstilosNuméricos.Número
Numeric decimal Decimal EstilosNuméricos.Número
Numeric numérico Decimal EstilosNuméricos.Número
Numeric float Double NumberStyles.Float
Numeric real Solteiro NumberStyles.Float
Numeric dinheiro miúdo Decimal NumberStyles.Currency
Numeric dinheiro Decimal NumberStyles.Currency
Data e Hora date DateTime DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal
Data e Hora time TimeSpan DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal
Data e Hora datetime DateTime DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal
Data e Hora smalldatetime DateTime DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal
Data e Hora datetime2 DateTime DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal
Data e Hora datetimeoffset DateTimeOffset DataTempoEstilos.PermitirEspaços em Branco | DateTimeStyles.AssumeUniversal

Mais informações sobre o parâmetro de cultura

A tabela seguinte mostra os mapeamentos das linguagens SQL Server para as culturas do .NET Framework.

Nome completo Alias LCID Cultura específica
us_english Inglês 1033 en-US
Alemão 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-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ă Romeno 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 (língua) 1055 Tr-TR
Britânico Inglês Britânico 2057 en-GB
eesti Estónio 1061 Et-EE
latviešu Letão 1062 lv-LV
lietuvių Lituano 1063 lt-LT
Português (Brasil) Brasileiro 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

Examples

A. PARSE para datetime2

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

Aqui está o conjunto de resultados.

Result  
---------------  
2010-12-13 00:00:00.0000000  
  
(1 row(s) affected)  

B. PARSE com símbolo de moeda

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

Aqui está o conjunto de resultados.

Result  
---------------  
345.98  
  
(1 row(s) affected)  

C. PARSE com configuração implícita da linguagem

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

Aqui está o conjunto de resultados.

Result  
---------------  
2010-12-16 00:00:00.0000000  
  
(1 row(s) affected)