Caros, Estou tendo uma dificuldade muito curiosa e, pra mim, incompreensível. Em um relatório, tento consultar uma view e obtenho um erro de conversão de data.
A view que criei é assim: CREATE VIEW VCONT ( CODPROJETO, CODGRUPO, DATAOCORRENCIA, NOMEOPERADOR, CODOPERADOR, TEMPO ) AS select h.CodProjeto, c.CodGrupo, cast(cast(h.DataOcorrencia as varchar(11)) as timestamp), o.NomeOperador, o.CodOperador, TempoTotal Tempo from Chamado c left outer join Historico h on c.codChamado = h.codChamado and c.CodProjeto = h.CodProjeto left outer join Operador o on h.codOperador = o.codOperador Vejam que estou reduzindo um campo do tipo datetime para varchar(11). O IBExpert reclama, mas na conexão do relatório funciona corretamente. Eu precisei fazer a view somente por causa desta conversão. Quero agrupar na consulta do relatório por data, não data e hora, pois difere em 16/12/2008 10:00:00.0000 e 16/12/2008 10:00:00.0001. A consulta que fiz é assim: /* Consulta sobre a view*/ select CodProjeto, Max(DataOcorrencia) DataOcorrencia, NomeOperador, CodOperador, SUM( calctime(Tempo)) Tempo from vcont2 where DataOcorrencia between :datai and :dataf and CodProjeto = :CodProjeto and Tempo > '00:00' group by CodProjeto, NomeOperador, CodOperador,DataOcorrencia order by NomeOperador, DataOcorrencia Obs.: CALCTIME é uma função para soma de tempo e está tudo ok. O erro ocorre justamente quando tento passa o resultado do campo DataOcorrencia(DATETIME) da view (que converti para varchar(11) e depois pra timestamp) como parâmetro da consulta. A mensagem de erro é: "EDBEngineError 13059: General SQL error. arithmetic exception, numeric overflow, or string truncation". O pior de tudo é que em minha máquina (virtual) de desenvolvimento (onde o Delphi está instalado) funciona corretamente, mas em uma máquina de testes (também virtual) dá esse erro. O mesmo aplicativo, o mesmo banco de dados, a mesma base de dados. O que pode ter no ambiente que gere esse erro? Talvez pra simplificar... Existe como eu agrupar em uma consulta como a acima um campo do tipo DATETIME só pela data, desprezando o tempo? Espero poder contar com o conhecimento dos colegas. Abraço. Luciano Gomes