Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base 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:
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.
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)