SQL Server 2012 – Função PARSE

Atualmente, trabalho em uma empresa aonda diariamente lidamos com valores monetarios no formato brasileiro, ou seja, “00,00”, porem, para trabalharmos no SQL Server com Float desta maneira, ele daria erro, a não pelo pelo nivel de linguagem de por default ja é padrão em ingles, então todas as vezes, trabalhamos com o mesmo sendo texto, e fazemos uma troca de “,” para “.”, podendo tratar com o Flat nativamente do SQL Server.

A dica teste post, é bem rapida, porem ao meu ver, extremamente util!…Por que não podemos, em tempo de execução, definir uma linguagem para o valor de entrada e obtermos no formato que quisermos, tipo um decimal….Bem, no SQL Server 2012 isso é possivel sim, graças a uma nova função chamada PARSE, sua execução é bem simples, porem seu ganho, enorme!

Veja exemplos:
Tente executar a seguinte consulta:

SELECT CAST(‘10,50’ AS decimal(9,2)) As Resultado

Voce tera um erro de conversão, pois no lugar da “,” deveria ser um ponto para termos os efetivos “dez e conquenta”, agora, veja como resolver este problema com o uso da função PARSE.

SELECT PARSE(‘10,50’ AS decimal(9,2) USING ‘pt-PT’) As Resultado

Voce podera notar que o retorno gerado é “10.50”, como seria se fizessemos a conversão manual, porem agora, pode trabalhar de forma muito mais simples, e mantendo o codigo muito mais limpo, sem as famosas “Gambiarras”.

Espero que tenham gostado, e assim que possivel, continuarei falando das novas funções do SQL Server 2012!!!!

Anúncios
Post a comment or leave a trackback: Trackback URL.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: