none
Converter Decimal para Moeda RRS feed

  • Pergunta

  • Tenho uma coluna decimal 25,6 que armazena valores de custos, preciso formatar uma consulta.

    Tentei usar FORMAT(VLR, 'c', 'pt-br') mas não funcionou:

    No caso da penultima linha o valor correto seria R$ 24.994,48.

    Alguém conhece uma maneira de efetuar essa conversão?


    Douglas Filipe http://douglasfilipe.wordpress.com

    terça-feira, 25 de agosto de 2020 20:50

Respostas

  • Douglas,

    Tente este exemplo:

    -- Exemplo 1 --
    Declare @Valores Decimal(25,6)
    
    Set @Valores = 2499488.000000
    
    Select FORMAT(@Valores / 100, 'c', 'pt-br')
    Go
    
    -- Exemplo 2 --
    Declare @Valores Decimal(25,6)
    
    Set @Valores = 40080300.000000
    
    Select FORMAT(@Valores / 100, 'c', 'pt-br') 
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Douglas Filipe quarta-feira, 26 de agosto de 2020 13:19
    quarta-feira, 26 de agosto de 2020 00:13

Todas as Respostas

  • Boa tarde,

    Acredito que o valor retornado pela função Format está de acordo com o valor original da coluna, sendo que para obter o valor que você disse acho que será necessário dividir o valor original por 100 dentro da função Format.

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 25 de agosto de 2020 21:03
  • Obrigado pela resposta.

    Mas se eu coloco pra dividir por 100 é retornado erro da antepenultima linha:

    Msg 245, Level 16, State 1, Line 3
    Conversion failed when converting the nvarchar value 'R$ 400.803,00' to data type int.

    Minha coluna formatada:

    FORMAT(VLR, 'C', 'PT-BR')/100 AS VLR_FORMATADO,


    Douglas Filipe http://douglasfilipe.wordpress.com

    terça-feira, 25 de agosto de 2020 21:30
  • Douglas,

    Tente este exemplo:

    -- Exemplo 1 --
    Declare @Valores Decimal(25,6)
    
    Set @Valores = 2499488.000000
    
    Select FORMAT(@Valores / 100, 'c', 'pt-br')
    Go
    
    -- Exemplo 2 --
    Declare @Valores Decimal(25,6)
    
    Set @Valores = 40080300.000000
    
    Select FORMAT(@Valores / 100, 'c', 'pt-br') 
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Douglas Filipe quarta-feira, 26 de agosto de 2020 13:19
    quarta-feira, 26 de agosto de 2020 00:13
  • Muito obrigado Junior Galvão!

    Funcionou a formatação certinho.


    Douglas Filipe http://douglasfilipe.wordpress.com

    quarta-feira, 26 de agosto de 2020 13:19
  • Douglas,

    Que bom, fico feliz.

    Até mais.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 26 de agosto de 2020 22:26