



Fala galera do Show Delphi, tudo bem com vocês?
É muito comum precisarmos trabalhar com vários bancos de dados, uma vez que podemos desenvolver aplicativos que se conectarão em base de dados já existentes, ou mesmo a empresa já trabalhar com determinado banco de dados e querer continuar utilizando somente um.
E no meu caso, precisei trabalhar com o MySQL e ao fazer SQLs, precisei fazer alguns arredondamentos com valores numéricos.
Após pesquisas na internet, consegui descobrir formas de fazer estes arredondamentos e resolvi criar uma dica rápida sobre o MySQL para vocês.
Caso você necessite de valores arredondados para alguma aplicação, podes utilizar funções nativas do MySQL!
Vamos aos exemplos:
Este comando SEMPRE arredonda para cima (em módulo), exemplos:
SELECT CEILING(4.5); -- Resultado: 5 SELECT CEILING(-3.29); -- Resultado: -3 |
Este comando SEMPRE arredonda para baixo (em módulo), exemplos: SELECT FLOOR(1.5) ; -- Resultado: 1 SELECT FLOOR(-2.37); -- Resultado: -3 |
Comando que arredonda para o próximo número inteiro (note que valores decimais abaixo de 5 são arredondados para baixo e acima de 5 para cima, e que a função aceita um segundo parâmetro que define o número de casas decimais do resultado), exemplo:
/* sem o segundo parâmetro o arredondamento será para número inteiro */ SELECT ROUND(-1.23); -- Resultado: -1 SELECT ROUND(-1.58); -- Resultado: -2 SELECT ROUND(1.298, 1); -- Resultado: 1,3 SELECT ROUND(4.796, 2); -- Resultado: 4,80 SELECT ROUND(1.298, 0); -- Resultado: 1 SELECT ROUND(23.298, -1); -- Resultado: 20 |
Elimina as casas decimais (também aceita um segundo valor definindo o número de casas decimais do resultado), exemplo:
SELECT TRUNCATE(1.223,1); -- Resultado: 1.2 SELECT TRUNCATE(1.999,1); -- Resultado: 1.9 SELECT TRUNCATE(122,-2); -- Resultado: 100 SELECT TRUNCATE(10.28*100,0); -- Resultado: 1028 |
Baseado no post: http://dbaprobrasil.blogspot.com/2009/10/funcoes-de-arredondamento-no-mysql.html
É isso pessoal, espero que seja útil a todos!
Dúvidas, deixe o seu comentário.
Um abraço e até o próximo post.