Usuário com melhor resposta
convert ajuda

Pergunta
-
Olá
Alguem poderia me ajudar, preciso saber se com o comando convert, eu consigo sair desses dois erros abaixo:
Estou fazendo um select com varios campos.
Msg 245, Level 16, State 1, Line 2
Conversion failed when converting the varchar value '632.090.002.615-0' to data type int.
Msg 248, Level 16, State 1, Line 2
The conversion of the varchar value '6360100180403' overflowed an int column.
Obrigado
Segue o comandoset
dateformat dmy
SELECT
DISTINCTdbo
.tblWRITipoImovel.Descricao,dbo
.tblWRILivro.Sigla,dbo
.tblWRIReal.PK_Num_Livro,dbo
.tblWRIAtos.DataAto,dbo
.tblWRIAtosTitulos.FK_tblWRIRecepcaoRecepcao ,convert (datetime,dbo.tblWRIImovel.Incra,103),
dbo
.tblWRIImovel.IRF,dbo
.tblWRIImovel.DenominacaoFROM
dbo.tblWRILivro INNER JOIN
dbo
.tblWRIAtosTitulos INNER JOINdbo
.tblWRIAtos INNER JOINdbo
.tblWRIReal ON dbo.tblWRIAtos.FK_tblWRIReal_Id = dbo.tblWRIReal.PK_Id INNER JOINdbo
.tblWRIImovel INNER JOINdbo
.tblWRITipoImovel ON dbo.tblWRIImovel.FK_tblWRITipoIMovel_Id = dbo.tblWRITipoImovel.PK_Id ONdbo
.tblWRIReal.FK_tblWRIImovelBase_Id = dbo.tblWRIImovel.FK_tblWRIImovelBase_Id ON dbo.tblWRIAtosTitulos.FK_tblWRIAtos_Id = dbo.tblWRIAtos.PK_Id ONdbo
.tblWRILivro.PK_Id = dbo.tblWRIReal.FK_tblWRILivro_IdWHERE
(dbo.tblWRIAtos.DataAto >= CONVERT(DATETIME, '2012-01-06 00:00:00', 102))
AND
(dbo.tblWRIImovel.Incra > 0) OR
(dbo.tblWRIAtos.DataAto >= CONVERT(DATETIME, '2012-01-06 00:00:00', 102)) AND (dbo.tblWRIImovel.FK_tblWRITipoIMovel_Id = 6 OR
dbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 7 ORdbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 15 ORdbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 23 ORdbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 30 ORdbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 32 ORdbo
.tblWRIImovel.FK_tblWRITipoIMovel_Id = 67)ORDER
BY dbo.tblWRIAtos.DataAto, dbo.tblWRIAtosTitulos.FK_tblWRIRecepcaoRecepcao
- Editado Eduardo_soncim quarta-feira, 27 de junho de 2012 19:49 acres
- Tipo Alterado Heloisa Pires segunda-feira, 2 de julho de 2012 12:33 é uma pergunta
Respostas
-
Olá Eduardo,
Acredito que o problema esta no where
troque a linha
dbo.tblWRIImovel.Incra > 0 --por LEN(dbo.tblWRIImovel.Incra) > 0
Att.
Lukas Baldan- Marcado como Resposta Heloisa Pires segunda-feira, 2 de julho de 2012 12:34
-
Eduardo,
Caso a sujestão do Lukas tenha ajudado/solucionado seu problema, marque-a como resposta para que os demais membros do forum se beneficiem da solução.
At.
rafael
- Marcado como Resposta Eduardo_soncim quinta-feira, 5 de julho de 2012 12:05
Todas as Respostas
-
Boa tarde Eduardo.
O Primeiro erro é pq vc está tentado converter uma string com pontos (.) e dash (-) para o tipo inteiro. Mesmo se não tivesses os pontos nem o traço/dash daria um erro porque o tipo inteiro suporta até 32.767 (se nao estou enganado). Voce devería executar um convert retirando esses caracteres para um tipo de dados BIGINT.
O segundo erro é porque o tipo nao suporta aquele tamanho, assim como no primeiro erro (ultrapassa os 32.767).
At.
Rafael -
Esse número "632.090.002.615-0" é o que? Qual é a coluna que representa ele?
Abraços!
Thiago Coelho
thiagocoelho.net
@thiagokoelho -
-
-
Eduardo, o dbo.tblWRIImovel.Incra é uma data?
convert (datetime,dbo.tblWRIImovel.Incra,103),
RAfael
- Editado Rafael S. Melo quarta-feira, 27 de junho de 2012 20:13
-
-
-
-
Se voce comentar ele, para de dar o erro?
Pq parece que o erro nao está no seu Select...
Pode ser aqui nessa linha : (dbo.tblWRIImovel.Incra > 0) OR
Veja que aqui voce está tentando comparar um varchar com inteiro, no caso o zero... Talvez se a intenção for testar se o campo está vazio ou não, voce pode usar assim:
(ISNULL(dbo.tblWRIImovel.Incra,'') <> '') OR
Rafael
-
Olá Eduardo,
Acredito que o problema esta no where
troque a linha
dbo.tblWRIImovel.Incra > 0 --por LEN(dbo.tblWRIImovel.Incra) > 0
Att.
Lukas Baldan- Marcado como Resposta Heloisa Pires segunda-feira, 2 de julho de 2012 12:34
-
-
Eduardo,
Caso a sujestão do Lukas tenha ajudado/solucionado seu problema, marque-a como resposta para que os demais membros do forum se beneficiem da solução.
At.
rafael
- Marcado como Resposta Eduardo_soncim quinta-feira, 5 de julho de 2012 12:05