Formatando Date para consulta SQL

7 respostas
N

Pessoal sei que vao dizer que esta repetindo topico e bla bla bla, mas todos os topicos de conversao que vi nao me ajudou. É o seguinte: tenho uma data que é pega de um campo calendar do primefaces, porem ela vem em um formato “Wed Sep 25 00:00:00 GMT-03:00 2013” , até ai tudo bem, sendo que preciso formata-la para “dd/MM/yyyy”, o problema que tento utilizar o simpleDateFormat… porem ele me retorna uma string e como a minha consulta é um HQL ele so aceita de fato a variavel do tipo Date. Eu consigo formatar para o geito que quero porem quando tento transformar para data novamente ele caga tudo de novo, Tentei usar o Date do sql, el eme retorna o formato “yyyy-MM-dd” e o mesmo nao serve para realizar a consulta. RESUMINDO preciso deixar meu objeto Date no formato “dd/MM/yyyy”. =\

7 Respostas

drsmachado

Cara, você não precisa converter nada.
O calendar do primefaces retorna um objeto java.util.Date e, se você passar este objeto direto para a consulta HQL, esta irá funcionar 100%.

N

O problema é que no banco esta salvo no formato “dd/MM/yyyy”, ai que esta o problema =\ , quando coloco do geito que vem ele nao tem como comparar, é o que diz

drsmachado

Uma coisa que eu esqueci de dizer é que Jeito se escreve com J.
Não interessa qual o formato da data no banco, o que interessa é o tipo de dados da coluna. Se ele for date, time ou timestamp, vai aceitar a comparação com um Date tranquilamente.
Agora, se você (ou a pessoa que criou o banco) não usou o cérebro e criou uma coluna que armazena datas como String, então, não terá como fazer a comparação mesmo.

RoxRicardo

E se alguém muito esperto fez tal coisa, aconselho a criar uma coluna timestamp ou date e migrar os valores armazenados na coluna atual.

drsmachado

E se alguém muito esperto fez tal coisa, aconselho a criar uma coluna timestamp ou date e migrar os valores armazenados na coluna atual.
o problema é que isso nem sempre é possível, neste caso, sugiro que seja feita a consulta sem validar a data e, tratar no código java. Vai ficar mais lento? Com certeza, mas quando não se age com prudência, há consequências.

RoxRicardo

E se alguém muito esperto fez tal coisa, aconselho a criar uma coluna timestamp ou date e migrar os valores armazenados na coluna atual.
o problema é que isso nem sempre é possível, neste caso, sugiro que seja feita a consulta sem validar a data e, tratar no código java. Vai ficar mais lento? Com certeza, mas quando não se age com prudência, há consequências.
Mas se for possível é melhor fazer o quanto antes. Vai ganhar em performance e coerência.

N

Bom pessoal consegui resolver, descobri que no final das contas o problema tava no HQL, e não na comparação. Obg

Criado 13 de setembro de 2013
Ultima resposta 13 de set. de 2013
Respostas 7
Participantes 3