quero fazer uma consulta no banco pela data:
[code]
String data_inicial = JOptionPane.showInputDialog(null,"Digite a data Inicial"); // captura data inicial
String data_final = JOptionPane.showInputDialog(null,"Digite a data Final"); // captura data final
//mais quando jogo na query não busca
con.executeSQL("Select * From movimento Where data_movimento Between (O QUE COLOCO AQUI??");
//eu já olhei no fórum antes de postar e não vi nada parecido,
Converta as datas inicial e final para o formato yyyy-MM-dd e faça o seguinte:
con.executeSQL("Select * From movimento Where data_movimento Between {d 'data inicial'} and {d 'data final'}");
Aconselho a utilização de um DateFormat para converter e de um PreparedStatement para passar as datas inicial e final para a consulta (se você estiver utilizando JDBC puro).
A parte do {d ‘data em yyyy-Mm-dd’} é um código de escape do JDBC. Ele pega a data passada como parâmetro e converte para o formato específico do SGBD que você está utilizando. Assim você não precisa se preocupar em ficar alterando o código caso mude de SGBD, pelo menos nesse caso.
C
cristiandrj
Oi, obrigado pela preocupação em me ajudar
pelo que entendi eu fiz assim mais não funcionou, o meu campo data_movimento no mysql é do tipo string
Stringdata_inicial=JOptionPane.showInputDialog(null,"Digite a data Inicial");Stringdata_final=JOptionPane.showInputDialog(null,"Digite a data Final");SimpleDateFormatdata_inicial_formatada=newSimpleDateFormat(data_inicial);SimpleDateFormatdata_final_formatada=newSimpleDateFormat(data_final);n.executeSQL("Select * From movimento Where data_movimento Between {d 'data_inicial_formatada'} and {d 'data_final_formatada'}");
felipealbuquerque
É melhor guardar uma data no formato de data mesmo…
Mas, seguindo o seu cenário atual você pode fazer da seguinte maneira:
String sql = "Select * From movimento Where data_movimento Between ''{0}'' and ''{1}''";
sql = MessageFormat.format(sql, new Object[] {dataInicial, dataFinal});
n.executeSQL(sql);
Utilizando o java.text.MessageFormat você evita ficar concatenando Strings e fica com o código bem mais limpo. Nesse caso, não precisa formatar a data, ao menos que você deseje guardar a data em um formato específico.
Dê uma pesquisada também em como utilizar o SimpleDateFormat, tem alguns tópicos aqui no GUJ.
Espero tê-lo ajudado!
C
cristiandrj
Caramba como vc me ajudou funcionou perfeitamente, muito obrigado mesmo, irei seguir os teus conselhos quanto a formatação
considero a minha dúvida RESOLVIDA
Que Deus continue te dando sabedoria a cada dia
um grande abraço
C
cristiandrj
Oi Felipe, estou tentando seguir o teu conselho em guardar a data no banco no formato date, porém tive que postar um outro tópico sobre isto , gostaria muito que vc me ajudasse