| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 11:53:09
|
Cabral
JavaTeenager
![[Avatar]](/images/avatar/8e443d6819ae22b2d64f75266f535b59.jpg)
Membro desde: 01/06/2005 09:10:59
Mensagens: 153
Localização: Arujá - SP
Offline
|
Pessoal bom dia,
tenho um campo no banco de dados Oracle que grava uma data neste formato:
12/12/2000 12:22:56
E preciso fazer uma consulta com o hibernate onde o usuário busca os registros de determinado dia. Ex: buscar processos executados em 15/10/2006.
Só que como eu não tenho a hora igual ele nunca vai encontrar estes registros.
Minha dúvida é: Existe a possibilidade de eu comparar somente com a data ao invés de comparar a hora também?
Muito Obrigado
Ricardo Cabral
|
** SCPN ** |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 12:13:18
|
ZehOliveira
GUJ Ranger
Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline
|
Você tá usando a API Criteria? Se for o caso, você pode usar o método sqlRestriction da classe Restrictions e tentar passar uma restrição como "trunc(campo_data_do_campo) = :data".
Lembrando que isso manda o índice do Oracle pra casa de cacete.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 12:50:45
|
Cabral
JavaTeenager
![[Avatar]](/images/avatar/8e443d6819ae22b2d64f75266f535b59.jpg)
Membro desde: 01/06/2005 09:10:59
Mensagens: 153
Localização: Arujá - SP
Offline
|
Rapaz, obrigado pela dica.
desse jeito ai funcionou, mas será que o HQL não preve uma forma mais simples de fazer isso??? Esquisito não?
|
** SCPN ** |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 14:29:10
|
psevestre
JavaEvangelist
Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline
|
O campo da base é VARCHAR/VARCHAR2/CHAR ?
Se for e não for possível mudar isto enquanto é tempo:
1. Reserve alguns minutos para amaldiçoar quem teve a péssima idéia de guardar uma data como caracter na base.
2. Lembre-se de registrar no relatório de atividades que vc. gastou horas adicionais para contornar a besteira que foi feita
3. Tente usar uma função de conversão de [VAR]CHAR[2] para DATE, e faça a comparação em HQL usando um parâmetro do tipo java.util.Date ou subclasses:
Query q = session.createQuery("from SuaClasse o where TO_DATE(o.colunaComData,'<FORMATO>') > :param")
q.setDate("param",param)
|
http://justaphilpicks.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 16:17:05
|
Cabral
JavaTeenager
![[Avatar]](/images/avatar/8e443d6819ae22b2d64f75266f535b59.jpg)
Membro desde: 01/06/2005 09:10:59
Mensagens: 153
Localização: Arujá - SP
Offline
|
psevestre, obrigado pela resposta.
o campo é date sim, mas o problema é que quando eu peço pra ele comparar ele compara os segundos e os milésimos e eu gostaria que ele comparasse só a data, pois senão ele nunca vai achar uma igual.
Ricardo Cabral
|
** SCPN ** |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/05/2008 13:45:22
|
ceara
Debugger
![[Avatar]](/images/avatar/609e9d4bcc8157c00808993f612f1acd.jpeg)
Membro desde: 27/05/2005 10:02:01
Mensagens: 60
Localização: Campinas
Offline
|
Cara, estou com o mesmo problema..
Mas vou ter q 'sofrer' com isso num order by.
Tu achou a solução!???
vou procurar algo na linha disso aqui!
http://www.guj.com.br/posts/list/39406.java
|
rafacastanho.wordpress.com |
|
|
 |
|
|