Comparações com Datas

5 respostas
M

E ae galera, to desenvolvendo uma aplicação de controle de uma fábrica, e por motivos específicos desse projeto, na folha de pagamento e no controle de caixa terei q fazer comparações usando datas, mas não a data como um todo, em certos casos comparações usando o mês, e em certos casos comparações usando os dias.
Qual a melhor maneira de trabalhar com isso, via java ou via sql? e como faze-lo?

5 Respostas

thegoergen

Olha… se essa comparação for usada num filtro para consulta, o melhor é em SQL. Porque a query fica muito mais rápida.

Particularmente, prefiro Java, eu tenho dificuldades em leitura de SQL, e no código Java eu acho mais legível e prático…

denni

Cara,
Se você for filtrar os dados para exibir no seu sistema e melhor você já fazer isso na consulta SQL. Assim:

where month(campoData) = 3 and 
day(dt_campoData) = 13 and year(campoData) = 2008

Espero ter ajudado.

Abs,

jingle

Vai depender se vai querer algo mais estático somente para este caso e sem ter que ter muitas alterações, faz em sql mesmo mas vai dar mais problema caso queira fazer manutenções, porem vai ser mais rapido.

Caso queira fazer algo mais genérico e prático faça em java pois o desempenho não é tão inferior e você vai ter uma manutenção bem mais simplificada.

fabim

Tente usar a comparação na sua aplicação. Assim vc poderá usar a classe Calendar, que te fornecerá maneiras mais fáceis de comprar o que vc quer ( apenas dias, apenas mês )

Linkel

Fera, para comparar datas com java você pode usar o compareTo(), que retornará 0 se for igual <0 se for menor ou > 0 se for maior…
Tipo:

if (data1.compareTo(data2) == 0) { JOptionPane.showMessageDialog(null,"As datas são iguais!"); } if (data1.compareTo(data2) < 0) { JOptionPane.showMessageDialog(null,"A data1 é menor que a data2"); } if (data1.compareTo(data2) > 0) { JOptionPane.showMessageDialog(null,"A data1 é maior que a data2"); }
Você pode usar esse método para outros tipos também, com datas completas ou apenas os dias, semanas, meses ou anos armazenados numa variável int ou String…

Para extrair esses dados de data te aconselho a utilizar a API JodaTime, que na minha opnião é a melhor e mais fácil para manipular datas, com recursos excepcionais e concisos…

Você fazer isso via aplicação java é mais profissional, a menos que o BD da sua aplicação seja independente de aplicação…

Um grande abraço!

Criado 24 de março de 2008
Ultima resposta 24 de mar. de 2008
Respostas 5
Participantes 6