Em 27/09/13, Giovani Rodrigues<[email protected]> escreveu:
> *"bom dia..*
> *tente utilizar:*
> *
> *
> *select (campo)::numeric(15,2) from table"*
>
> Desta forma funcionou! Obrigado!
>
>
> *"SELECT ROUND(column_name,decimals) FROM table_name;"*
>
> O ROUND não funcionou. Retornou a seguinte mensagem de erro:
>
> [ERRO: função round(double precision, integer) não existe
> LINE 1: SELECT id_insumo, codnofor, ROUND(valor,2), unidade, nf, da...
> ^
> HINT: Nenhuma função corresponde com o nome e os tipos de argumentos
> informados. Você precisa adicionar conversões de tipo explícitas.
>
> ********** Error **********
>
> ERRO: função round(double precision, integer) não existe
> SQL state: 42883
> Hint: Nenhuma função corresponde com o nome e os tipos de argumentos
> informados. Você precisa adicionar conversões de tipo explícitas.
> Character: 30]
>
Não tem muito sentido você arredondar um campo double precision para
uma casa decimal já que esta representação é inerentemente imprecisa.
Por isso o PostgreSQL prevê as funções [1]:
round(dp or numeric) (same as input) round to nearest integer
round(42.4) 42
e
round(v numeric, s int) numeric round to s decimal places
round(42.4382, 2) 42.44
com arredondamento para casa decimal apenas para um campo numeric.
Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/functions-math.html
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral