Duvida em HQL que retorne número de dias

5 respostas
J

Boa noite Pessoal. Estou com uma dúvida. Estou montando um hql que retorne um número inteiro mostrando a diferenca em dias. O bd é postgres. O sql seria mais ou menos assim. select age(dataAtual, timestamp aniversario) from funcionario.. Queria q retornasse em dias e em hql.

5 Respostas

Chaybelucas

ResultSet resultado = seuStatement.executeQuery(“SELECT AGE(dataAtual,timestamp aniversario) from funcionario”);

Tenta issae
~ Lembrando: o resultado deve rodar dentro de um laço pra poder retornar algo

while(resultado.next) {
String res = resultado.getString(“dataAtual”);

)

J

Boa noite. Esta pensando em nao usar sql. Pensando na ideia que vc me passou. Criar um Dialeto Customizado. Para aceitar essa função q vc me disse. Tipo assim.

public class CustomDialect extends PostgreSQLDialect {

public CustomDialect () {

super();

registerFunction( aage, new SQLFunctionTemplate( Hibernate.INTEGER, age(?1,timestamp ?2) ) );

}

}
Só que ainda não funcionou

Chaybelucas

A partir de Dialeto Customizado já não posso colaborar, perdão! Mas se quiser ajuda com SQL, posso dar uma força! Faço isso quase constantemente, puxando dados do campo de data de aniversário de uma pessoa e colocando dentro de uma String, para verificar a data de aniversário e avisar no início do sistema, quem faz aniversário e quando. Loucura, mas faço.

J

Boa tarde. Vou querer uma ajuda sua. O select q estou tentando e esse aqui.SELECT age(now(),aniversario) from funcionario;. Só que queria apenas o ano. Essa funcionalidade do seu sistema é bem legal. Acho interessante essas notificações para avisar o usuário.

Chaybelucas

Tenta recorrer à “gambiarra” kkk
Eu capturo a data em uma String e divido em dd/mm/aaaa, divido usando split() e armazeno em um vetor. vetor[1], vetor[2], vetor[3]
A posicao 1 fica com o dia, a 2 fica com o mês e a 3 com o ano.
String[] vetor = suaString.split("/");

Acho que é isso

Criado 19 de fevereiro de 2016
Ultima resposta 25 de fev. de 2016
Respostas 5
Participantes 2