Consulta com erro de datetime

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rhicky
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 58
Registrado em: Sex, 20 Jul 2007 9:48 am
Localização: S. J. do Rio Preto/SP
Rhicky

Ao tentar salvar a consulta abaixo no SQL Server (T-SQL), o sistema dá a seguinte mensagem. Como resolver?
"Estouro no campo Datetime. A precisão de frações de segundo excede a escala especificada na associação do parâmetro."

Selecionar tudo

select f.codsecao codsecao$$
     , s.descricao
     , f.chapa
     , f.nome 
     , i.descricao
     , e.inicioperaquis
     , e.fimperaquis
     , e.faltas
     , F.CODCOLIGADA
     , F.CODFILIAL
from   pfunc     f
     , psecao    s
     , pcodsituacao i
     , pfuferias e
where  (select nvl(30 - sum((datafim - datainicio) + 1), 30)
        from   pfuferiasper
        where  codcoligada      = f.codcoligada
        and    chapa = to_number(f.chapa)
        and    fimperaquis      = e.fimperaquis) > 0
and  not exists  (select max(datafim)
                  from   pfuferiasper
                  where  codcoligada      = f.codcoligada
                  and    chapa = f.chapa
                  and    fimperaquis      = e.fimperaquis
                  group by codcoligada, chapa
                  having count(chapa) >= 2)        
and    s.codcoligada   = f.codcoligada
and    s.codigo        = f.codsecao
and    i.codcliente    = f.codsituacao
and    e.periodoaberto = 1 
and    e.codcoligada   = f.codcoligada
and    e.chapa         = f.chapa
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

você podia nos enviar a estrutura da tabela, e o tipo de informação que tem dentro.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

Rhcky,

O erro provavelmente ocorre na linha abaixo:

Selecionar tudo

where  (select nvl(30 - sum((datafim - datainicio) + 1), 30)


Para resolvê-lo é necessário fazer o que o dr_gori recomendou: informar maiores detalhes sobre a estrutura da tabela envolvida, ou mais especificamente, sobre os campos do tipo data.

[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes