FORMATAR NUMEROS NO SQL

JONESPARIS 14/06/2010 21:39:20
#344808
Boa Noite Pessoal...
utilizando o Mysql e VB6.0, estou querendo atualizar o valor de um campo com limitação na quantidade decimal, preferencialmente pegar as configurações do windows para isso, sei que o Mysql não tem formato Moeda, tentei da seguinte forma... mas dá erro na sintaxe:

conn.Execute [Ô]UPDATE itensatendimentos SET tabelacomdesconto = format(tabela, numeric)[Ô]

alguém pode me ajudar?

abraços
LIZANDER 14/06/2010 21:45:18
#344809
Tente:
conn.Execute [Ô]UPDATE itensatendimentos SET tabelacomdesconto = [Ô] & format(tabela, numeric)
JONESPARIS 14/06/2010 21:51:56
#344810
Não dá, pois tabela é um campo do banco de dados, teria que ficar dentro da instrução sql
LIZANDER 14/06/2010 22:16:55
#344812
Segundo o fórum MSDN não tem com formatar direto na instrução SQL...

Dê uma olhada...

http://social.msdn.microsoft.com/Forums/pt-BR/transactsqlpt/thread/8051f9b0-6c7e-4d67-a8ad-3c356babdbcd
JESUEL.OLIVEIRA 14/06/2010 22:17:37
#344813
Amigo, JONES

Precisa olhar pois o mysql tem um capom DECIMAL pode colocar quantas casas decimais precisar, e uso uma função para trocar VIRGULA por PONTO


  [Ô] & gVgPt(VL_VALOR_DEBITO) & [Ô] 


  Function gVgPt(ByVal sEntrada As Variant) As String
If sEntrada = [Ô][Ô] Or sEntrada = [Ô]0.00[Ô] Then
gVgPt = [Ô]0[Ô]
Exit Function
End If
sEntrada = Replace(sEntrada, [Ô].[Ô], [Ô][Ô])
sEntrada = Replace(sEntrada, [Ô],[Ô], [Ô].[Ô])
gVgPt = sEntrada
End Function


Se não for isso posta a estrutura do seu BD para podermos tentar ajudar
MARCELO.TREZE 15/06/2010 05:57:25
#344819
Funciona assim, o format arredonta um numero para X casas decimais ex:

Format(Valor,Casasdecimais)

onde de

conn.Execute [Ô]UPDATE itensatendimentos SET tabelacomdesconto = format(tabela, 2)[Ô]

se o valor de tabela for 522312

vai formatar paara 5,223.12, repare que este é o valor americano retornado


format (522312,4)

=> 5,223.1200

e é mais ou menos isto, teste ai

PRESTO 15/06/2010 09:26:27
#344836
Já utilizei o format dentro de um sql, mas tinha um truquezinho na sintaxe.
Era assim:

[Ô]SELECT * FROM [tabela] WHERE [campo] = [Ô] [campo] >= # [Ô] & Format(data, [Ô]mm/dd/yyyy[Ô]) & [Ô]# ORDER BY campoX [Ô]

Se bem que era para formatar data, mas eu acho que funciona com valor. E não esqueça, como disseram anteriormente, de trocar a vírgula pelo ponto, senão dá pau mesmo.
MARCIO.ROGERIO 15/06/2010 09:59:03
#344844
Olá,

declare @Valor as decimal (12,2)

set @valor = (select sum(VALOR) from TABELA where REGISTRO = 1)
print @Valor

Para o SQL Server 2008, pode ser assim.
Tem outro jeito, vou procurar e coloque no post depois.

Até,

Rogério.
Tópico encerrado , respostas não são mais permitidas