Funções de Arredondamento no MySQL
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:
CEILING
Este comando SEMPRE arredonda para cima (em módulo), exemplos:
SELECT CEILING(4.5);
-- Resultado: 5
SELECT CEILING(-3.29);
-- Resultado: -3 |
SELECT CEILING(4.5);
-- Resultado: 5
SELECT CEILING(-3.29);
-- Resultado: -3
FLOOR
Este comando SEMPRE arredonda para baixo (em módulo), exemplos:
SELECT FLOOR(1.5) ;
-- Resultado: 1
SELECT FLOOR(-2.37);
-- Resultado: -3 |
Este comando SEMPRE arredonda para baixo (em módulo), exemplos:
SELECT FLOOR(1.5) ;
-- Resultado: 1
SELECT FLOOR(-2.37);
-- Resultado: -3
ROUND
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 |
/* 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
TRUNCATE
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 |
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.
-
Giovani Da Cruz
-
3.053 views
- 0 comentários
- 28 de outubro de 2020
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo