Trunc de data em um Criteria

1 resposta
D

Bom dia,
Estou precisando criar uma pesquisa dinamica usando Criteria do Hibernate.
A coluna no banco de dados é do tipo Timestamp. Para fazer a pesquisa recebo somente a data no formata DD/MM/YYYY sem a hora, minuto e segundo. A minha instrução do Criteria é

c.add(Expression.eq("dataOperacao", dataEspecifica));

Estou querendo trazer os registros de uma determinada data mas, infelizmente, o select gerado pelo Hibernate esta com a hora, minuto e segundo. Estou precisando colocar ou fazer em algum ponto um trunc da coluna dataOperacao, mas, aonde coloco este trunc ou qual a forma de fazer isto com o Critéria?

Alguma idéia?

Grato

1 Resposta

T

Em vez de truncar a data, o que pode levar a não usar o índice já existente da tabela (ou seja, consulta lenta), você poderia usar algo como o equivalente a

SELECT … WHERE dataOperacao BETWEEN ‘2006/05/04 00:00:00’ AND ‘2006/05/04 23:59:59’

se a data específica for 04/05/2006. Ou seja, você precisaria passar dataEspecífica e dataEspecifica + 23:59:59.

Criado 5 de maio de 2006
Ultima resposta 5 de mai. de 2006
Respostas 1
Participantes 2