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

Responder a