Pesquisa por data
12/04/2010 00:00
0
Olá galera!

Gente, estou tentando realizar uma pesquisa por intervalo de datas (usamos o between, claro). É o seguinte, tenho o form:


<div class=&quot;form-pesquisa&quot;>
<g&#58;form action= &quot;listPesquisaData&quot; method=&quot;get&quot; >
<label for=&quot;pesquisa&quot;>
Pesquisar Período de&#58; <g&#58;datePicker name= &quot;dataInicio&quot; precision=&quot;day&quot; noSelection=&quot;[''&#58;'-Selecione-']&quot;></g&#58;datePicker>
Até&#58; <g&#58;datePicker name= &quot;dataFim&quot; precision=&quot;day&quot; noSelection=&quot;[''&#58;'']&quot;></g&#58;datePicker>
</label>
<span class=&quot;button&quot;><input class=&quot;save&quot; type=&quot;submit&quot; value=&quot;Ok&quot; /></span>
</g&#58;form>
</div>


tenho o método no controller:



def listPesquisaData={

String dataI = &quot;${params.dataInicio_year}/${params.dataInicio_month}/${params.dataInicio_day}&quot;
def dataInicio = new Date(params.dataInicio_year as int, (params.dataInicio_month as int) -1, params.dataInicio_day as int)

String dataF = &quot;${params.dataFim_year}/${params.dataFim_month}/${params.dataFim_day}&quot;
def dataFim = new Date(params.dataFim_year as int, (params.dataFim_month as int) -1, params.dataFim_day as int)

println &quot;-------------------- resultado= ${dataInicio} ------------------ ${dataFim}&quot;

def placas = Placa.createCriteria()
def results = placas.list {
between('criadoEm' , dataInicio , dataFim)
}
println &quot;-------------------- resultado= ${results}&quot;
params.max = Math.min( params.max ? params.max.toInteger() &#58; 30, 100)
render(view&#58;'list',model&#58;[ placaList&#58; results, placaTotal&#58; Placa.count()])
}



Ou seja estou pegando os input dataInicio e dataFim(que submet como string e segmantado: params.data_day, params.data_month, params.data_yeah TUDO COMO STRING... :S ) e estou transformando-os para o tipo Date

A grande questão é: como criar as variáveis dataInicio e dataFim com o mesmo formato dos dados da coluna criado_em (Estou usando postgres e a coluna criado_em é do tipo timestamp without time zone)

pois, verificando com o print, as datas com o tipo date retorman assim: Tue Apr 12 00:00:00 BRT 3910
e os dados da coluna criado_em estão assim: 2010-04-13 00:00:00.0

Andei pesquisando mas não encontrei uma solução!!

Ajuda aewwwww!
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->

Falou Galera!
Tags: Grails


0
Oi Arquimedes,

cara: a solução mais interessante é você usar e abusar da classe java.text.SimpleDateFormat nestes casos.

Use-a para converter as datas para o formato que você deseja e, em seguida, passe-as para o modelo, aonde serão persistidas exatamente como definiu nesta classe.


0
Pois é Kiko, inclusive no FAQ do site do grails ele explica exatamente como tratar com SimpleDateFormat, o Pro é que implementei com SimpleDateFormat e ficou ocorrendo erro, dai usei o Date...
Vou tentar de novo com SimpleDateFormat fazendo importação da classe java.text.SimpleDateFormat, não estava importando pois acho que não precisa para esta classe!

Você pode me dar um exemplo!?

Falou meu brodher!
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
12/04/2010 00:00


0
Como transformar o select em SQL abaixo:


select * from public.placas where hojee BETWEEN '10/03/2010' AND '10/05/2010';


para fazer a mesma coisa com executeQuery???

Estou fazendo assim mas está dando erro (could not resolve property)
meu código:


def results = Placa.executeQuery( &quot;select p.hojee from Placa p where p.hojee > ? and p.hojee < ? &quot;, ['${params.dataInicio}' , '${params.dataFim}']);


Qual a melhor forma de fazer este selecT????

Valeu!
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
13/04/2010 00:00


0
Opa Arquimedes,

eu acho a segunda opção BEM mais interessante. Sempre opte por aquela na qual possa usar parametros.



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