O bug nosso de cada dia

MySQL


mysql> select cast(85 as decimal(3,2));
+--------------------------+
| cast(85 as decimal(3,2)) |
+--------------------------+
|                     9.99 |
+--------------------------+
1 row in set, 1 warning (0.00 sec)

PostgreSQL


template1=#  select cast(85 as decimal(3,2));
LOG:  statement: select cast(85 as decimal(3,2));
ERROR:  numeric field overflow
DETAIL:  The absolute value is greater than or equal to 10^1 for field with precision 3, scale 2.

O Mysql sempre silenciando os erros… :D

This entry was posted in MySQL, PostgreSQL and tagged , , , , . Bookmark the permalink.

6 Responses to O bug nosso de cada dia

  1. Jefferson [Visitante] says:

    template1=# select cast(85 as decimal(3,2));
    LOG: statement: select cast(82 as decimal(3,2));

    Mas era de 85 ou de 82? O LOG apontou 82…

  2. Tá bom, você me pegou: eu fiz o teste no postgres com 82, depois eu vi que devia ser 85, mas esqueci de mudar a linha de baixo :D

  3. Tem coisas *BUM* que só o MySQL faz por você :P

  4. MS-SQL server (7.0, 2000 e 2005)

    Server: Msg 8115, Level 16, State 8, Line 1
    Arithmetic overflow error converting numeric to data type numeric.

    Agora fica a pergunta: Pq acontece isso, alguém sabe ?

  5. Oi Luciano! Na verdade, o campo deveria ser decimal (4,2). O primeiro número, antes da virgula, indica o total de números permitido no campo, sacou?

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>