 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Fev 05, 2020 4:22 pm Assunto: Ignorar registros com datas inválidas [Resolvido] |
|
|
Tenho a consulta SQL abaixo que funciona bem:
Código: | select sum(vallan) from asccc019
where MONTH(convert(datetime, DATLAN, 11)) = MONTH(GETDATE())
and YEAR(convert(datetime, DATLAN, 11)) = YEAR(GETDATE()) |
Esse SQL soma o valor de todos os registros do mês corrente.
Uso a função CONVERT porque o campo DATLAN é string no formato yy/mm/dd.
O problema é quando há uma data inválida no campo DATLAN é retornado o erro:
Código: | the conversion of a varchar data type to a datetime data type resulted in an out-of-range value |
Gostaria de ignorar estes registros com datas inválidas e mostrar a consulta. É possível?
Banco de dados: SQL Server 2008 R2
Componente: ADO _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin
Editado pela última vez por natanbh1 em Qua Fev 05, 2020 4:42 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Fev 05, 2020 4:41 pm Assunto: |
|
|
Consegui resolver trocando a função CONVERT por TRY_CONVERT que retorna nulo se a conversão for mal sucedida.
Código: | select sum(vallan) from asccc019
where MONTH(try_convert(datetime, DATLAN, 11)) = MONTH(GETDATE())
and YEAR(try_convert(datetime, DATLAN, 11)) = YEAR(GETDATE()) |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|