Converter nvarchar(255) para float

18/03/2014

0

Amigos poderiam me ajudar com essa questão,

Tenho uma coluna com dados nvarchar(255) queria converter todos os valores dessa coluna para float, porém quando uso o ALTER TABLE recebo a seguinte mensagem:

Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to float.
The statement has been terminated

Também não consigo mudar o tipo pelo modo designer da tabela..

Poderiam me ajudar?

Esses são os tipos de dados que estão na coluna.

420,8
137,43
127,89
137,43
174
140,63

Muito Obrigado!
Luiz Souzaos

Luiz Souzaos

Responder

Posts

18/03/2014

Jefferson Santos

Porque não utilizar o convert ou cast para alterar quando necessário?
Responder

18/03/2014

Luiz Souzaos

Estou iniciando no sql server, pesquisei sobre convert e cast e não entendi muito bem.

O nome da minha coluna que está em nvarchar é valor_total e o nome da tabela é Tabela_Produtos, poderia me ajudar como montar o cast ou convert pra passar pra float?

Obrigado pela atenção!
Responder

18/03/2014

Jair N.

Pode ser por causa da " vírgula " (,) substitua por "ponto" (.) decimal...
REPLACE CAST ou COVERT
Responder

18/03/2014

Luiz Souzaos

Troquei a virgula por pontos, mas na hora de converter pra float continua o erro.
usei a seguinte query

UPDATE TABELA_IMPORT_HORAS SET
[Valor Movimento]=CAST(REPLACE([Valor Movimento],',','.') AS FLOAT)
GO

ALTER TABLE TABELA_IMPORT_HORAS
ALTER COLUMN [Valor Movimento] FLOAT
GO



Msg 8114, Level 16, State 5, Line 3
Error converting data type nvarchar to float.
The statement has been terminated.
Responder

18/03/2014

Fabiano Carvalho


Veja se funciona
select
cast(CAST(REPLACE([Valor Movimento],',','.') AS varchar(100)) as float)
from TABELA_IMPORT_HORAS
GO
Ou então, tente converter para money e depois para float.

E nunca use nvarchar,ntext...

Troquei a virgula por pontos, mas na hora de converter pra float continua o erro.
usei a seguinte query

UPDATE TABELA_IMPORT_HORAS SET
[Valor Movimento]=CAST(REPLACE([Valor Movimento],',','.') AS FLOAT)
GO

ALTER TABLE TABELA_IMPORT_HORAS
ALTER COLUMN [Valor Movimento] FLOAT
GO



Msg 8114, Level 16, State 5, Line 3
Error converting data type nvarchar to float.
The statement has been terminated.
Responder

18/03/2014

Luiz Souzaos

Fabiano, tentei o Cast com Replace que você sugeriu e não foi, e também não consegui converter pra money, acho que to lascado, nada tá funcionando.
Responder

18/03/2014

Isaac Jose

Boa tarde Faz o seguinte..
cria um novo campo com o valor que vc quer e da update nele.
depois deleta o antigo e renomeia o novo..
Responder

18/03/2014

Luiz Souzaos

Issac tentei isso, criei uma nova coluna com o tipo float e quando tento dá o update nela recebo o erro de que não posso passar de nvarchar para float.
Responder

18/03/2014

Isaac Jose

tenta com o convert

ALTER TABLE TableName
ADD NewCol Int Null

UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)


se não funcionar amanha vemos isso boa noite
Responder

19/03/2014

Jair N.

Bom Dia, pode ser que o campo "NVARCHAR" contenha "ESPAÇOS" a esquerda, LTRIM()

Tá como não estou vendo, estou deduzindo...

Atc.

tenta com o convert

ALTER TABLE TableName
ADD NewCol Int Null

UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)


se não funcionar amanha vemos isso boa noite
Responder

19/03/2014

Fabiano Carvalho

Pra desencargo, melhor utilizar cast(replace(convert(varchar,ltrim(rtrim(campo))),',','.') as float)

Bom Dia, pode ser que o campo "NVARCHAR" contenha "ESPAÇOS" a esquerda, LTRIM()

Tá como não estou vendo, estou deduzindo...

Atc.

tenta com o convert

ALTER TABLE TableName
ADD NewCol Int Null

UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)


se não funcionar amanha vemos isso boa noite
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar