Usuário com melhor resposta
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.

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.
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
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
-
Bom dia,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos 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.