Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

julioczg

UPDATE com multiplicação

Recommended Posts

Boa tarde,

 

 

Estou tentando fazer um cálculo direto no mysql. Minha função é simples, tenho dados ordenados por data e desejo fazer uma multiplicação em todos os dados quando a data for menor do que uma determinada data.

Ex.:

UPDATE tabela SET valor = (10000 * valor) WHERE data <= '2004-03-19';

Valor é um campo numeric(12,10),

 

Ao executar esse comando o valor inicial que era de 0,012332 vira 99,999999, sendo que o certo seria 123,32.

Em alguns casos ele funciona, porém nesse em específico está gerando esse valor de 99,99999999.

 

 

Alguém sabe o motivo desse cálculo errôneo?

Seria o tipo de dados que estou usando?

 

 

Abraço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere o campo para (12,9), se não estou enganado é o 9 dígitos após a virgula é o limite.

Faça um teste para certificar-se.

Documentação

http://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-characteristics.html

Dá uma lida nesse tópico do S.O.

http://stackoverflow.com/questions/4834390/how-to-use-mysql-decimal

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro parâmetro (12) é a quantidade de caracteres, e o segundo (9) é a quantidade após a virgula, portanto, se quiser somente duas casas decimais deveria ser (12,2).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.