Como pesquisar por mês usando DatePicker
23/08/2012 13:43
0
Gente,

Estou usando datePicker no minha classe e quando salvo no MySql fica assim por exemplo: 2012-07-23 00:00:00

Tudo certo, mas quero fazer uma consulta onde o usuário escolhe por mês e ano.

Tentei usar no controlador para gerar uma lista, usando mais ou menos esse código:

classe.findAllByCampoData(new Date()), mas sem sucesso, mesmo pegando a data completa..

alguma idéia de filtrar por mês e ano?

Agradeço a ajuda, abraços

Tags: datePicker, Date, search


0
Vi que o MySql salva no formato DateTime
23/08/2012 14:02


0
Se quiser que pesquise considerando mês e ano exatamente terá que fazer consulta adhock do mysql, pois cada variante de SQL costuma ter seu jeito próprio de consulta por dia, mês e ano em datas.



0
Mas como fica a consulta no controlador?

Consegui fazer da seguinte forma, ao invés de pedir ao usuário o mês e o ano, passei dois dataPicker para ele preencher..

Entao o usuário botaria dataInicial: 01/08/2012 e dataFinal 31/08/2012.

No controlador ficou:

def doSearchNumeroList = {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
[autorizacaoServicoInstanceList: AutorizacaoServico.findAllByDataAutorizacaoBetween(params.dataInicial., params.dataFinal), autorizacaoServicoInstanceTotal: AutorizacaoServico.count()]
}

Funciona.. mas eu queria que o usuário passasse apenas o mês e ano.. e já encontrasse o resultado.

Algum direcionamento?

[]s
23/08/2012 15:11


1
Já que está usando MySql, tente algo como:

Usuario.createCriteria().list{
sqlRestriction "month(nascimento)=?", [params.campoMes]
}

ou
Usuario.createCriteria().list{
sqlRestriction "month(nascimento)=? and year(nascimento)", [params.campoMes, params.campoAno]
}


0
Obg Yoshiriro,

Vou tentar quando sair aqui do trabalho.

[]s
23/08/2012 17:23


0
Funcionou direitinho..

Obg Yoshiriro, vc é o cara =D

[]s
24/08/2012 11:12


0
Allyson,

exite ainda a possibilidade de fazer assim:
Turma.executeQuery("select t from Pessoa t where month(t.nascimento)=? and year(t.nascimento)=?", [params.campoMes, params.campoAno])


Bem, na verdade nunca testei assim. Mas acho que funciona também.


0
Errata:
Onde está Turma.executeQuery(... leia-se Pessoa.executeQuery(....



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto