Converter nvarchar(255) para float
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!
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
Curtidas 0
Respostas
Jefferson Santos
18/03/2014
Porque não utilizar o convert ou cast para alterar quando necessário?
GOSTEI 0
Luiz Souzaos
18/03/2014
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!
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!
GOSTEI 0
Jair N.
18/03/2014
Pode ser por causa da " vírgula " (,) substitua por "ponto" (.) decimal...
REPLACE CAST ou COVERT
REPLACE CAST ou COVERT
GOSTEI 0
Luiz Souzaos
18/03/2014
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.
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.
GOSTEI 0
Fabiano Carvalho
18/03/2014
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.
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.
GOSTEI 0
Luiz Souzaos
18/03/2014
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.
GOSTEI 0
Isaac Jose
18/03/2014
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..
cria um novo campo com o valor que vc quer e da update nele.
depois deleta o antigo e renomeia o novo..
GOSTEI 0
Luiz Souzaos
18/03/2014
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.
GOSTEI 0
Isaac Jose
18/03/2014
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
ALTER TABLE TableName
ADD NewCol Int Null
UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)
se não funcionar amanha vemos isso boa noite
GOSTEI 0
Jair N.
18/03/2014
Bom Dia, pode ser que o campo "NVARCHAR" contenha "ESPAÇOS" a esquerda, LTRIM()
Tá como não estou vendo, estou deduzindo...
Atc.
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
ALTER TABLE TableName
ADD NewCol Int Null
UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)
se não funcionar amanha vemos isso boa noite
GOSTEI 0
Fabiano Carvalho
18/03/2014
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.
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
ALTER TABLE TableName
ADD NewCol Int Null
UPDATE TableName
SET NewCol = CONVERT(INT, LocNo)
se não funcionar amanha vemos isso boa noite
GOSTEI 0