neste artigo, vamos discutir e aprender o básico e todos os detalhes sobre o tipo de dados SQL Server operações de conversão e também, vamos revisar o SQL CONVERTER e TRY_CONVERT funções built-in com várias amostras. No início, vamos explicar e clarificar a sintaxe da função SQL CONVERT e, em seguida, vamos aprender como podemos fazer a conversão de dados processos numéricos e tipos de dados de data/hora para dados de caráter.,
Implícito vs Explícita
O processo de mudança de tipo de dados de um valor para outro tipo de dados é conhecido como conversão de tipo de dados e também quase todas as linguagens de programação incluem algum tipo de funções de conversão de dados ou funcionalidade. Quando viramos nossa perspectiva para o servidor SQL, a fim de discutir detalhes de operações de conversão de dados SQL, no início podemos separar o processo de conversão de dados em duas partes; conversões implícitas e explícitas., A conversão implícita é feita pelo servidor SQL para necessidades internas e você também pode encontrar detalhes adicionais no artigo conversão implícita no servidor SQL. Conversão explícita é realizada explicitamente por um programador de banco de dados ou administrador e, ao mesmo tempo, este processo de conversão é feito com a ajuda de qualquer função de conversão de dados. Neste artigo, vamos focar particularmente na função SQL CONVERT. Esta função fornece uma forma de converter um tipo de dados para outro tipo de dados especificado. A princípio, interpretaremos a sintaxe da função SQL CONVERT.,
Sintaxe
1
|
CONVERT (tipo de dados (comprimento), de expressão, de estilo)
|
data_type: Este parâmetro define o tipo de dados de destino que está a ser convertido. o parâmetro data_type pode tomar esses tipos de dados como uma entrada que são mostrados na lista abaixo.
comprimento: este é um parâmetro opcional que especifica o comprimento do tipo de dados alvo., O valor padrão deste parâmetro é 30.
expressão: este parâmetro especifica o valor que queremos converter para outro tipo de dados.
style: este é um parâmetro inteiro que especifica o estilo de saída do valor convertido. Este valor é mais útil para data formatos de tipo de dados.
agora, vamos reforçar estas instruções teóricas com várias amostras práticas.
Converter Float para Int
neste exemplo, vamos converter um tipo de dados float para inteiro., Na seguinte consulta, vamos declarar uma variável que o tipo de dados é flutuante e, em seguida, vamos usar a função SQL CONVERT, a fim de converter valor flutuante para inteiro de modo que vamos realizar a operação de conversão de dados.,
1
2
3
4
5
6
|
–Declarando uma variável de ponto flutuante
INFORMANDO @FloatVal COMO Float
–Atribuir um valor de ponto flutuante para a variável
SET @FloatVal = 1132.,12345
–Converter o valor float para int
SELECT CONVERT(int, @FloatVal) COMO ConvertedValue
|
Converter Flutuar para Varchar
neste exemplo, vamos converter um valor de ponto flutuante para varchar valor. Este exemplo é muito semelhante ao anterior, mas a única diferença é que vamos converter valor flutuante para varchar.,
1
2
3
4
5
6
|
–Declarando uma variável de ponto flutuante
INFORMANDO @FloatVal COMO Float
–Atribuir um valor de ponto flutuante para a variável
SET @FloatVal = 1132.,12345
–Converter float valor varchar
SELECT CONVERT(varchar, @FloatVal) COMO ConvertedValue
|
No exemplo a seguir, nós não enviará qualquer valor para o parâmetro de comprimento de SQL função CONVERTER para o comprimento do parâmetro deve ser definido para o valor padrão. Como já observamos na explicação de sintaxe da função SQL CONVERT, este valor padrão é 30 e agora vamos provar isso., Na consulta a seguir, vamos criar uma tabela temporária e vamos inserir o valor convertido para esta tabela e, em seguida, vamos analisar a estrutura de dados desta tabela.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE IF EXISTS TestConvertedTable
–Declarando uma variável de ponto flutuante
INFORMANDO @FloatVal COMO Float
–Atribuir um valor de ponto flutuante para a variável
SET @FloatVal = 1132.,12345
–Converter float valor varchar
SELECT CONVERT(varchar, @FloatVal) COMO ConvertedValue EM TestConvertedTable
— Analisar a tabela temporária
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
a PARTIR de INFORMATION_SCHEMA.,COLUNAS ONDE TABLE_NAME=’TestConvertedTable’
|
Como você pode ver na imagem acima, o tipo de dados float foi convertido para o valor varchar e não tenhamos definido o parâmetro de comprimento de modo que o SQL Server aplicado o valor padrão do parâmetro de comprimento de 30.
Agora, vamos definir o parâmetro de comprimento da função de conversão SQL e, em seguida, verificar novamente o comprimento do tipo de dados varchar.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE IF EXISTS TestConvertedTable
–Declarando uma variável de ponto flutuante
INFORMANDO @FloatVal COMO Float
–Atribuir um valor de ponto flutuante para a variável
SET @FloatVal = 1132.,12345
–Converter float valor varchar
SELECT CONVERT(varchar(20), @FloatVal) COMO ConvertedValue EM TestConvertedTable
— Analisar a tabela temporária
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
a PARTIR de INFORMATION_SCHEMA.COLUNAS ONDE TABLE_NAME=’TestConvertedTable’
|
Converter em Dinheiro para Varchar
O SQL Server dinheiro de dados tipo de ajuda para armazenar valores monetários., Podemos definir valores monetários precedidos por um símbolo de moeda no entanto o servidor SQL não armazena os símbolos de moeda ou quaisquer dados que estejam relacionados com o símbolo de moeda. Na seguinte consulta, vamos converter o tipo de dados de dinheiro para varchar e também vamos usar o parâmetro de estilo da função SQL convert. Com a ajuda do parâmetro de estilo, podemos determinar delimitadores vírgulas e comprimento do dígito decimal direito. O gráfico seguinte mostra o valor do parâmetro de estilo e a saída da função de conversão SQL.,
Value |
Style Parameter |
Comma Delimiter |
Right decimal digit |
Output |
no |
||||
yes |
4,936.,56 |
|||
Converter Float e Real para Varchar
Float e real tipos de dados numérico aproximado tipos de dados no SQL Server e isso significa que esses tipos de dados não guarde valores exatos. Eles armazenam uma aproximação muito próxima do valor armazenado. Agora, vamos explicar a concepção aproximada do tipo de dados numéricos., Na seguinte consulta, vamos criar uma tabela que tem duas colunas e os tipos de dados destas colunas são flutuantes e reais e então vamos inserir alguns valores numéricos. Na verdade, nós esperávamos dois números de dígitos na tabela no entanto o tipo de dados real e flutuante armazena os valores mais próximos aos valores esperados.
a tabela abaixo é citada a partir dos documentos da Microsoft e esta tabela explica o estilo de conversão dos tipos de dados reais e flutuantes para dados textuais.,
dica: notação científica é um método especial para expressar números muito grandes ou pequenos, principalmente usados na ciência.
Valor |
Saída |
0 (padrão) |
Um máximo de 6 dígitos. Utilizado na notação científica, quando apropriado. |
Sempre 8 dígitos. Sempre usado em notação científica. |
|
sempre 16 dígitos. Sempre usado em notação científica. |
|
Sempre 17 dígitos. Uso para conversão sem perdas., Com este estilo, cada vírgula flutuante ou valor real é garantido para converter para uma cadeia de caracteres distinta. |
Agora vamos demonstrar um exemplo que inclui todos os estilos de conversão de dados de acordo com esta tabela.
Como pode ver no acima, o conjunto de resultados mostra que o parâmetro de estilo muda a saída da função de conversão SQL.
Convert Date / Time to Varchar
Date/Time formats can vary according to locale settings and for this reason we require various formats to represent date/time., Imagine que você tem uma aplicação e os usuários de diferentes países usam esta aplicação, então se alguém conecta esta aplicação nos EUA, você tem que representar a data como formato de Mês/Dia/Ano. Por outro lado, outro usuário conecta esta aplicação no Reino Unido e você tem que representar formato de data como formato de Dia/Mês/Ano. Neste caso, temos que determinar a data/hora que representa o estilo de acordo com a configuração local data / hora. o procedimento de armazenamento do sp_helplanguage devolve as línguas suportadas com informações detalhadas no servidor SQL.,
além disso, podemos determinar o idioma afirmou sessão e, desta forma, podemos adaptar as funções de data/hora para determinado idioma. Na seguinte consulta, vamos definir o idioma para polonês e, em seguida, podemos ver a mudança do nome do mês e do dia de acordo com o local Polonês.
Tip: como regra geral, se irá desenhar uma base de dados multinacional de aplicações, guarde sempre o tempo UTC (Tempo Universal Coordenado) numa coluna para que possa evitar problemas de data / hora devido às configurações locais.,resultado para o padrão alemão, podemos usar a seguinte consulta:
1
|
SELECIONE GETDATE() COMO ,CONVERT(Varchar(50),GETDATE(),104) COMO
|
No seguinte cheat tabela, você pode encontrar cada uso de uma combinação de estilo de parâmetro e todo o formato de saída do SQL função CONVERT () para data/hora para caracteres do conversões de dados.,
ow, vamos demonstrar esta tabela de batota com todas as combinações para a função GETDATE SQL para que possamos descobrir a influência do parâmetro de estilo para as saídas de função SQL CONVERT.
Agora, vamos mencionar alguns pontos que temos de considerar sobre a operação de conversão de data/hora. No início desta seção, falamos sobre as opções e configurações da linguagem SQL Server, então se mudarmos a configuração da linguagem que afeta algumas das saídas do estilo de conversão de data/hora., No exemplo abaixo, nós queremos converter os resultados da função GETDATE de modo que esta configuração afeta diretamente o nome do mês abreviado da função SQL CONVERT.
outra consideração é o formato do ano. Em algumas circunstâncias, podemos usar um parâmetro de estilo que não devolve o formato do século, mas este caso pode causar algumas situações confusas. Tal como na amostra a seguir temos duas datas diferentes e também estas datas armazenar anos diferentes, no entanto, a saída da função de conversão SQL são semelhantes.,
TRY_CONVERT ()
a função SQL TRY_CONVERT é uma forma avançada da função de conversão SQL. A principal vantagem da função SQL TRY_CONVERT é proteger de erros de conversão de dados durante a execução da consulta. É possível que possamos experimentar erros no processo de conversão de dados com a operação secreta SQL devido a dados não-adequados ou sujos. No entanto, a função SQL TRY_CONVERT permite-nos evitar estes tipos de erros. Ao mesmo tempo, não existem diferenças de sintaxe entre as funções SQL CONVERT e TRY_CONVERT., A função SQL TRY_CONVERT devolve o valor nulo se a conversão de dados gerar um erro. No exemplo abaixo, no início vamos tentar converter o valor do personagem para um inteiro através da função SQL CONVERT e esta operação irá retornar um erro.,
1
|
SELECIONE CONVERT(INT,’AnyString’) COMO ConvertFunc
|
por outro lado, se usar o SQL função TRY_CONVERT em vez do SQL CONVERTER função para a mesma consulta que irá retornar o valor NULL.,
1
|
SELECT TRY_CONVERT(INT,’AnyString’) AS ConvertFunc
|
Conclusion
In this article, we thoroughly reviewed the SQL CONVERT function syntax, details and significant considerations. Data conversion processes have wide usage, in practice, therefore in this article we demonstrated various examples., Eu sou recomendado que você tenha cuidado com a conversão de data/hora de dados do tipo se o seu banco de dados está sendo usado em diferentes países. Da mesma forma, a formatação para tipos de dados de data/hora é outro ponto importante.
- Autor
- Posts Recentes
A maior parte de sua carreira tem sido focada na administração e desenvolvimento de banco de Dados SQL Server. Seus interesses atuais são na administração de banco de dados e Inteligência de negócios. Pode encontrá-lo no LinkedIn.,
Ver todos os posts por Esat Erkec
- primeiros passos com o SQL Programação – fevereiro 3, 2021
- Como ler um plano de execução com todos os detalhes – 28 de janeiro de 2021
- SELECT de SQL instrução TOP visão geral e exemplos – 25 de janeiro de 2021
Deixe uma resposta