Comparar uma data no Oracle com HQL  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
Cabral
JavaTeenager
[Avatar]

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 **
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.
Cabral
JavaTeenager
[Avatar]

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 **
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/
[MSN]
Cabral
JavaTeenager
[Avatar]

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 **
ceara
Debugger
[Avatar]

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
[WWW] [ICQ]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team