Consultar registro por intervalo de datas

5 respostas
C

Pessoal boa tarde,

Estou com um probleminha que está me tirando os cabelos…

Estou precisando fazer uma consulta no banco de dados de um intervalo de datas que esta gravado no banco com o seguinte formato “yyyy-MM-dd”, estou usando JPA hibernate, como poderia fazer isso?

5 Respostas

fernandopaiva

vc pode usar SQLQuery

veja.

public class Datas{
   //nesta classe eu tenho metodos q tratam minhas datas...se quiser te mando depois
  
  public String formataDataRetornaBD(String data) throws ParseException{
        //veja este metodo....ele recebe uma String como dia/mes/ano e retorna ano/mes/dia
        SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        Date d = df.parse(data);
        df = new SimpleDateFormat("yyyy-MM-dd");
        String s = df.format(d);
        return s;
    }
}



SQLQuery query = session.createSQLQuery("SELECT * FROM tabela WHERE campodatatabela BETWEEN dataInicial = ? AND dataFinal = ?");
query.setParameter(1, new Datas().formataDataRetornaBD(dataInicial.getText()));
query.setParameter(2, new Datas().formataDataRetornaBD(dataFinal.getText()));

t+ e boa sorte.

C

O meu problema não é com a data que vem do BD e sim com a data que eu passo como parametro para fazer a pesquisa

fernandopaiva

eh exatamente o que esse metodo q te passei faz, ele converte de dd/mm/aaaa para aaaa/mm/dd…Faz o teste em um System.out.println() q vc vai ver o retorno dele. Ai eh soh mandar pro banco q ele se encarrega de retornar pra vc.

t+ e boa sorte !

adriano_si

Mas ao usar JPA não temos o Dialect do Banco setado, bastando para isso passar como Parâmetro um Objeto do tipo Date ???

Desculpem se falei besteira, mas pensei que o ORM da JPA tirasse essa responsabilidade.

Abs []

adriano_si

Segue em anexo um exemplo que fiz… Se bem que é com a JPA 2.0

Abs []

Criado 26 de agosto de 2011
Ultima resposta 26 de ago. de 2011
Respostas 5
Participantes 3