Olá, bom dia. Estou quebrando cabeça com um problema, vejam o exemplo:
DateFormat format =
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dateI = (Date)format.parse("2011-05-01 00:00:00");
Date dateF = (Date)format.parse("2011-05-14 00:00:00");
Na hora de executar a query
Queryquery=session.createQuery(" from Evento where dataGravacao between "+dateI+" and "+dateF);
Dá o erro
unexpected token: May near line 1, column 52 [ from modelo.Evento where dataGravacao between Sun May 01 00:00:00 BRT 2011 and Sat May 14 00:00:00 BRT 2011]
A data não está indo no formato que eu executei nela. Alguma dica?
Grato, Carlos.
vc está lendo um formato String e atribuindo valor a um objeto java.util.Date. Quando vc recupera o valor sem formatar, ele pegará o formato padrão do método toString() (vide link)
C
cmendes
Cara, como eu passo um valor Date para realizar pesquisa num banco de dados então, a partir de um valor String? Na realidade eu já recebo datas na execução do método, só que elas não estão formatadas, aí dá erro na execução da query.
unexpected token: Jun near line 1, column 52 [ from modelo.Evento where dataGravacao between Wed Jun 01 00:00:00 BRT 2011 and Wed Jun 15 00:00:00 BRT 2011]
public List<Evento> getLista(Date dataInicial, Date dataFinal) throws ParseException {
List<Evento> eventos = new ArrayList<Evento>();
Query query = session.createQuery( " from Evento where dataGravacao between " + dataInicial + " and " + dataFinal);
Por isto preciso formatar as datas…
Z111
Qual o banco de dados e qual o tipo (date, timestamp, datetime…)
C
cmendes
Oracle
private Calendar dataGravacao;
Na verdade eu estou usando Web Service. Aqueles parâmetros dataInicial e dataFinal são recebidos via Web Service, serão utilizados prá recuperar registros no Oracle e retornar para jsp…
Não precisas de formatar as datas se seguires o que já te foi sugerido atrás…
Query query = session.createQuery( " from Evento where dataGravacao between :dataInicial and :dataFinal");
query.setParameter("dataInicial", dataInicial, TemporalType.DATE);
query.setParameter("dataFinal", dataFinal, TemporalType.DATE);