ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Formatação de Números inteiros e reais.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
fdsilva.desenv
Novato
Novato


Registrado: Quarta-Feira, 28 de Novembro de 2012
Mensagens: 68

MensagemEnviada: Qui Out 19, 2017 1:20 pm    Assunto: Formatação de Números inteiros e reais. Responder com Citação

Prezados, boa tarde.

Preciso formatar meus valores inteiros e reais dentro do banco de dados. Alguem tem alguma ideia como fazer isso no SQL Server 2008?

Ex: numero 2000 = 2.000
Ex2: numero 2500.05 = 20.500,05

essas informações, posteriormente vou armazená-las em um campo tipo varchar.

obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Out 19, 2017 3:39 pm    Assunto: Responder com Citação

Boa tarde,

Posso estar enganado mas acredito que o SQL Server na versão 2008 não tem funções específicas para formatação de valores.
A partir da versão 2012 foi introduzida a função Format.
Na versão 2008 experimente utilizar a sequencia de funções dos exemplos abaixo:

Código:
select
    replace(replace(replace(convert(varchar, cast(CampoComDecimal as money), 1), '.', '|'), ',', '.'), '|', ','),
    replace(parsename(convert(varchar, cast(CampoInteiro as money)), 2), ',', '.')


obs: o Cast para Money não é necessário se o campo for do tipo money ou smallmoney

Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!macedo-residencial-casa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fdsilva.desenv
Novato
Novato


Registrado: Quarta-Feira, 28 de Novembro de 2012
Mensagens: 68

MensagemEnviada: Qui Out 19, 2017 3:58 pm    Assunto: Responder com Citação

Amigo, boa tarde.

Antes de mais nada, obrigado pelo apoio.

Utilizei suas fórmulas e o resultado foi o seguinte:

Fórmula:
Código:
select @texto = 'Existem '+ replace(parsename(convert(varchar, cast(@prodtotal as money)), 2), ',', '.') +
            ' produtos que ENTRARAM('+replace(parsename(convert(varchar, cast(@entradas as money)), 2), ',', '.')+
            ') mais do que SAÍRAM('+replace(parsename(convert(varchar, cast(@saidas as money)), 2), ',', '.')+
            '). Valor comprado desnecessário – R$'+replace(replace(replace(convert(varchar, cast(@vendas as money), 1), '.', '|'), ',', '.'), '|', ',')


Resultado:
"Existem 1547 produtos que ENTRARAM(48645) mais do que SAÍRAM(20373). Valor comprado desnecessário – R$220.336.738,48"

Ou seja, a formula para numeros decimais deu certo, mas a de numeros inteiros ainda não.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Out 19, 2017 5:04 pm    Assunto: Responder com Citação

Acho que faltou um parâmetro para a função Convert:

Código:
    replace(parsename(convert(varchar, cast(CampoInteiro as money), 1), 2), ',', '.')


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
fdsilva.desenv
Novato
Novato


Registrado: Quarta-Feira, 28 de Novembro de 2012
Mensagens: 68

MensagemEnviada: Sex Out 20, 2017 7:27 am    Assunto: Responder com Citação

Certinho meu amigo.

Deu certo.

Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB