Usuário com melhor resposta
Case campo Int e Data

Pergunta
-
Pessoal,
estou montando um case na seguinte condição
case when S.NivelTipo = 'H' then CAST(S.Hora as INT)
when S.NivelTipo = 'D' then CONVERT(VARCHAR(10),S.Calendario,103) end as VL
ai recebo a seguinte msg
Mensagem 245, Nível 16, Estado 1, Linha 2
Falha ao converter o varchar valor '01/04/2015' para o tipo de dados int.
como resolver isso ?att, wsti.
Respostas
-
Bom dia,
O tipo de dados retornado em todas as condições do Case deve ser o mesmo, sendo que no seu caso, acredito que as opções seriam converter a coluna S.Hora para varchar(10), ou a S.Hora e a S.Calendario para DateTime ou semelhante. Ex:
case when S.NivelTipo = 'H' then CONVERT(VARCHAR(10), S.Hora, 108) when S.NivelTipo = 'D' then CONVERT(VARCHAR(10), S.Calendario, 103) end as VL
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Lucio Rogerio SPBanned quinta-feira, 20 de agosto de 2015 13:37
- Marcado como Resposta Durval RamosModerator domingo, 27 de setembro de 2015 21:03
-
Bom dia,
O Campo 'S.HORA' é de que tipo, provável que esse campo seja do tipo DATA e por isso a mensagem de erro.
Atenciosamente, Ruberlei. www.t-sql.com.br
- Editado Ruberlei quinta-feira, 20 de agosto de 2015 13:38 melhoria
- Marcado como Resposta Durval RamosModerator domingo, 27 de setembro de 2015 21:03
Todas as Respostas
-
Bom dia,
O tipo de dados retornado em todas as condições do Case deve ser o mesmo, sendo que no seu caso, acredito que as opções seriam converter a coluna S.Hora para varchar(10), ou a S.Hora e a S.Calendario para DateTime ou semelhante. Ex:
case when S.NivelTipo = 'H' then CONVERT(VARCHAR(10), S.Hora, 108) when S.NivelTipo = 'D' then CONVERT(VARCHAR(10), S.Calendario, 103) end as VL
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Sugerido como Resposta Lucio Rogerio SPBanned quinta-feira, 20 de agosto de 2015 13:37
- Marcado como Resposta Durval RamosModerator domingo, 27 de setembro de 2015 21:03
-
Bom dia,
O Campo 'S.HORA' é de que tipo, provável que esse campo seja do tipo DATA e por isso a mensagem de erro.
Atenciosamente, Ruberlei. www.t-sql.com.br
- Editado Ruberlei quinta-feira, 20 de agosto de 2015 13:38 melhoria
- Marcado como Resposta Durval RamosModerator domingo, 27 de setembro de 2015 21:03
-
Ruberei e gapimex obrigado pela colaboração. realmente os campos são diferentes um é data e outro é um int.
Acreditava que como a condição era o campo S.NivelTipo = H ou D o T-sql entendesse qual seria o campo de retorno e a conversão seria uma mera formatação do campo.
Agora entendi, vou converter para varchar.
Desde já agradeço a ajuda.
Att, wsti.