PARSE (Transact-SQL)
Retorna o resultado de uma expressão, convertida no tipo de dados solicitado no SQL Server 2012.
Convenções da sintaxe Transact-SQL
Sintaxe
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 PARSE gera um erro.
data_type
Valor 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 implicita 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, convertida no tipo de dados solicitado.
Comentários
Os valores nulos transmitidos como argumentos para PARSE são tratados de dois modos:
Se uma constante nula for transmitida, um erro ocorrerá. Um valor nulo não pode ser analisado em um tipo de dados diferente de maneira cultural.
Se um parâmetro com um valor nulo for transmitido no momento da execução, um valor nulo será retornado, para evitar o cancelamento do lote inteiro.
Use PARSE somente para converter de 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.
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 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 |
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.PARSE em 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 de idioma
-- 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)