Boa noite pessoal, estou tentando fazer uma pesquisa por meio de uma condição (um filtro), da seguinte forma:
public static final String SELECIONAMES = "SELECT * FROM COMPRA WHERE COMPDATA BETWEEN ? AND CURRENT_DATE";
public Vector pegaDadosHistoricoMes(int criterioPesquisa) {
try {
Date data = new Date();
Calendar dataPesquisa = Calendar.getInstance();
dataPesquisa.setTime(data);
dataPesquisa.add(Calendar.MONTH, (1 - criterioPesquisa));
dataPesquisa.set(Calendar.DAY_OF_MONTH, 1);
PreparedStatement ps;
if (criterioPesquisa == 0) {
ps = BancoDados.getConexao().prepareStatement(SELECIONATODOS);
} else {
ps = BancoDados.getConexao().prepareStatement(SELECIONAMES);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
ps.setString(1, sdf.format(dataPesquisa)); // Erro nesta linha
}
...
java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:281)
at java.text.Format.format(Format.java:140)
at Movimentos.Persistencia.PersistenciaCompra.pegaDadosHistoricoMes(PersistenciaCompra.java:320)
Tentei converter de outras formas mas não deu certo, se alguém souber e puder me ajudar, desde já agradeço!
