none
The datediff function resulted in an overflow. The number of dateparts separating two date/time instances is too large. Try to use datediff with a less precise datepart. RRS feed

  • Pergunta

  • Prezados,

    Estou recebendo este erro ao executar a query abaixo:

    Erro: The datediff function resulted in an overflow. The number of dateparts separating two date/time instances is too large. Try to use datediff with a less precise datepart.

    DECLARE @Filter uniqueidentifier  
                    SET @Filter = '3340fde3-6c03-45ba-b9e6-877d4ac6a0f1' 
          SELECT    vc.Name as computerName, 
                    vupdate.Name as updateName, 
                    cast(DATEDIFF(s, '1970-01-01 00:00:00', vpm.EventTime)as int) AS createdDate, 
                    vpm.EventTime as eventTime, 
                    case vpm.Successful when 0 then 'Falha' else 'Sucesso' end as eventStatus, 
                    vpm.ReturnCode as returnCode, 
                    error.ErrorDescription as errorDescription 
          FROM vPMCore_SWDEventExecutionSuccessByComputer vpm 
                  JOIN vComputer vc on vc.Guid = vpm._ResourceGuid 
                            LEFT JOIN vPMCore_SoftwareUpdateAdvertisement vupdate on vupdate.Guid = vpm.AdvertisementId 
                            LEFT JOIN Inv_ErrorCode_Details error on error.ErrorCode = vpm.ReturnCode 
                  JOIN CollectionMembership cm ON cm.ResourceGuid = vc.Guid 
                  JOIN vCollection it ON it.Guid = cm.CollectionGuid  
          WHERE cast(DATEDIFF(s, '1970-01-01 00:00:00', vpm.EventTime)as int) > '1442594745' AND LOWER (it.[Guid]) LIKE LOWER (@Filter) AND vpm.Successful = 0 
                            ORDER BY createdDate DESC

    Já utilizei essa função de conversão diversas vezes e essa é a primeira vez que esse erro ocorre.

    Agraço a ajuda.

    sexta-feira, 18 de setembro de 2015 21:58

Respostas

  • Boa noite,

    Acredito que esse erro está ocorrendo porque o resultado da função DateDiff, considerando pelo menos um dos valores da coluna vpm.EventTime existentes na tabela, é superior a 2.147.483.647.

    Se for esse o caso mesmo, uma alternativa seria alterar o parâmetro Datepart da função para Minute (n) ou outro periodo de tempo maior, sendo que nesse caso também seria necessário alterar o valor utilizado na comparação (1442594745) para o Datepart utilizado.

    Espero que ajude.

     


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Marcos SJ quinta-feira, 24 de setembro de 2015 12:44
    sexta-feira, 18 de setembro de 2015 22:41

Todas as Respostas

  • Boa noite,

    Acredito que esse erro está ocorrendo porque o resultado da função DateDiff, considerando pelo menos um dos valores da coluna vpm.EventTime existentes na tabela, é superior a 2.147.483.647.

    Se for esse o caso mesmo, uma alternativa seria alterar o parâmetro Datepart da função para Minute (n) ou outro periodo de tempo maior, sendo que nesse caso também seria necessário alterar o valor utilizado na comparação (1442594745) para o Datepart utilizado.

    Espero que ajude.

     


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Marcos SJ quinta-feira, 24 de setembro de 2015 12:44
    sexta-feira, 18 de setembro de 2015 22:41
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 24 de setembro de 2015 12:44