CONVERTER NUMERIC PARA MOEDA SQL SERVER
Galera estou montando um select que retorne o valores já em moeda, porém só consigo colocar a virgula nas casa decimais tem como substituir essa virgula pelo ponto?
Ele retorna os seguinte valores: 26,347,670.07
Gostaria que retorna-se assim: 26.347.670,07 - com pontos
SELECT CAST(CONVERT(VARCHAR, SUM (CAST(A.SALDOVALOR AS MONEY) ),1) AS VARCHAR) VALOR FROM AM_SALDOESTOQUE A WHERE CLIENTE NOT IN (10004,12058)
Ele retorna os seguinte valores: 26,347,670.07
Gostaria que retorna-se assim: 26.347.670,07 - com pontos
Isaque
Curtidas 0
Melhor post
Emerson Nascimento
03/04/2020
o resultado em moeda é um texto.
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
SELECT A.SALDOVALOR, -- numerico FORMAT(A.SALDOVALOR, 'C', 'pt-br') AS 'Formato Moeda' -- caracter FROM AM_SALDOESTOQUE A WHERE CLIENTE NOT IN (10004,12058)
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
GOSTEI 4
Mais Respostas
Isaque
03/04/2020
o resultado em moeda é um texto.
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
SELECT A.SALDOVALOR, -- numerico FORMAT(A.SALDOVALOR, 'C', 'pt-br') AS 'Formato Moeda' -- caracter FROM AM_SALDOESTOQUE A WHERE CLIENTE NOT IN (10004,12058)
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
Não funcionou esse código retorna a seguinte mensagem: "Could not find stored procedure 'FORMAT' ".
GOSTEI 0
Isaque
03/04/2020
o resultado em moeda é um texto.
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
SELECT A.SALDOVALOR, -- numerico FORMAT(A.SALDOVALOR, 'C', 'pt-br') AS 'Formato Moeda' -- caracter FROM AM_SALDOESTOQUE A WHERE CLIENTE NOT IN (10004,12058)
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
Não funcionou esse código retorna a seguinte mensagem: "Could not find stored procedure 'FORMAT' ".
DESCONSIDERE A RESPOSTA ANTERIOR .
O código retorna a seguinte mensagem: 'FORMAT' is not recognized built-in function name
GOSTEI 0
Emerson Nascimento
03/04/2020
qual versão do SQL Server você está utilizando?
GOSTEI 0
Isaque
03/04/2020
qual versão do SQL Server você está utilizando?
Estou utilizando a seguinte versão:
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
" Apr 2 2010 15:48:46 "
" Copyright (c) Microsoft Corporation"
" Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)"
GOSTEI 0
Emerson Nascimento
03/04/2020
A função FORMAT() está disponível a partir do SQL Server 2012.
se você não puder atualizar o SQL Server, crie uma função para obter o resultado desejado.
Por exemplo:
Para usar:
se você não puder atualizar o SQL Server, crie uma função para obter o resultado desejado.
Por exemplo:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION dbo.FMTMOEDA ( -- Parâmetro que vai receber o valor @VLR NUMERIC(18,2) ) RETURNS VARCHAR(50) AS BEGIN -- Declaração das variáveis de apoio DECLARE @INTEIRO INT DECLARE @FRACAO INT DECLARE @STRINTEIRO VARCHAR(50) DECLARE @STRFRACAO VARCHAR(50) DECLARE @STRRESULT VARCHAR(50) -- Obtém a parte inteira e a parte decimal do valor passado SET @INTEIRO = ROUND(@VLR,2) SET @FRACAO = ((ROUND(@VLR,2) - (@INTEIRO / 1.000)) * 100) -- Transforma os valores obtidos em caractere SET @STRINTEIRO = LTRIM(RTRIM(CAST(@INTEIRO AS VARCHAR(50)))) SET @STRFRACAO = RIGHT('0'+LTRIM(RTRIM(CAST(@FRACAO AS VARCHAR(50)))),2) -- Separa a string de 3 em 3 para montar o texto formatado SET @STRRESULT = '' WHILE LEN(@STRINTEIRO) > 0 BEGIN IF LEN(@STRINTEIRO) > 3 BEGIN SET @STRRESULT = RIGHT(@STRINTEIRO,3) + '.' + @STRRESULT SET @STRINTEIRO = LEFT(@STRINTEIRO,LEN(@STRINTEIRO)-3) END ELSE BEGIN SET @STRRESULT = @STRINTEIRO + '.' + @STRRESULT SET @STRINTEIRO = '' END; END; -- Retorna a texto final, concatenando a parte inteira à parte decimal RETURN REPLACE(@STRRESULT + ',' + @STRFRACAO, '.,', ',') END GO
Para usar:
SELECT dbo.FMTMOEDA(2986566) SELECT dbo.FMTMOEDA(365901.06) SELECT dbo.FMTMOEDA(0) SELECT dbo.FMTMOEDA(1.4) SELECT dbo.FMTMOEDA(1.04) SELECT dbo.FMTMOEDA(P.VALOR) FROM PEDIDO P
GOSTEI 0
Romulo
03/04/2020
o resultado em moeda é um texto.
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
SELECT A.SALDOVALOR, -- numerico FORMAT(A.SALDOVALOR, 'C', 'pt-br') AS 'Formato Moeda' -- caracter FROM AM_SALDOESTOQUE A WHERE CLIENTE NOT IN (10004,12058)
seguindo o exemplo que você passou, o resultado será
R$ 26.347.670,07
*** TU É UM GÊNIO ***
### OBRIGADO ###
GOSTEI 0
Caio
03/04/2020
Buenas,
Estou tentando formatar o valor no padrão brasileiro, entretanto não está retornando corretamente.
FORMAT(ctr.valor_total, 'C', 'pt-br') as total
Original: 4512
Retorno: 4,512
Alguém conseguiria auxiliar?
Não tenho muito conhecimento de SQL Server.
Tks,
Caio
Estou tentando formatar o valor no padrão brasileiro, entretanto não está retornando corretamente.
FORMAT(ctr.valor_total, 'C', 'pt-br') as total
Original: 4512
Retorno: 4,512
Alguém conseguiria auxiliar?
Não tenho muito conhecimento de SQL Server.
Tks,
Caio
GOSTEI 0
Emerson Nascimento
03/04/2020
tente isto (execute as duas linhas simultaneamente):
DECLARE @VALOR FLOAT = 4512
SELECT FORMAT(@VALOR, 'C', 'pt-br') as total
qual o retorno?
DECLARE @VALOR FLOAT = 4512
SELECT FORMAT(@VALOR, 'C', 'pt-br') as total
qual o retorno?
GOSTEI 0