Usuário com melhor resposta
Erro ao converter data

Pergunta
-
Bom dia,
Galera!
Estou com um problema ao gerar um relatório e gostaria de uma ajuda, o problema é o seguinte, tenho a Query abaixo que quando rodo ela é apresentado o erro:
Detalhe, o erro só acontece quando eu executo na ferramenta de relatório a condição do case
Código Estr. Produto, quando eu deixo em branco executa normalmente
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
SELECT P.ProdCodEstr, P.ProdNome As Descricao, CL.CtrlLoteUnidMedCod As Unidade, CL.CtrlLoteQtdSaldo As Saldo, CL.CtrlLoteNum As Lote, CONVERT(datetime,CL.CtrlLoteDataFab,103) As DataFabricacao, CONVERT(datetime,CL.CtrlLoteDataValid,103) As DataValidade FROM CTRL_LOTE CL WITH(NOLOCK), Produto P WITH(NOLOCK) WHere CL.CtrlLoteDataValid >= CAST(GETDATE() AS DATE) And CL.CtrlLoteDataValid <= DATEADD(MONTH, 6, GETDATE()) AND CL.CtrlLoteQtdSaldo>0 And (P.ProdCodEstr >= @ProdCodIni or @ProdCodIni = '') And (P.ProdCodEstr <= @ProdCodFim or @ProdCodFim = '') And CL.EmpCod = @pEmpCod And P.ProdCodEstr = CL.ProdCodEstr ORDER BY CASE WHEN @Opcao = 'Código Estr. Produto' THEN P.ProdCodEstr ELSE CONVERT(datetime,CL.CtrlLoteDataValid,103) END
Respostas
-
Bom dia,
Experimente dessa forma:
ORDER BY CASE WHEN @Opcao = 'Código Estr. Produto' THEN P.ProdCodEstr ELSE convert(char(23), CONVERT(datetime, CL.CtrlLoteDataValid, 103), 121) END
obs: o tipo de dados retornado por todas as opções do Case deve ser igual
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex quarta-feira, 27 de julho de 2016 15:02
- Sugerido como Resposta Robson William Silva quarta-feira, 27 de julho de 2016 16:38
- Marcado como Resposta Robson William Silva quarta-feira, 27 de julho de 2016 17:14
Todas as Respostas
-
Bom dia,
Experimente dessa forma:
ORDER BY CASE WHEN @Opcao = 'Código Estr. Produto' THEN P.ProdCodEstr ELSE convert(char(23), CONVERT(datetime, CL.CtrlLoteDataValid, 103), 121) END
obs: o tipo de dados retornado por todas as opções do Case deve ser igual
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Editado gapimex quarta-feira, 27 de julho de 2016 15:02
- Sugerido como Resposta Robson William Silva quarta-feira, 27 de julho de 2016 16:38
- Marcado como Resposta Robson William Silva quarta-feira, 27 de julho de 2016 17:14
-