Ваш SimpleDateFormat
объект должен соответствовать формату, сохраненному в таблице, если вы хотите сравнить месяцы.Вы должны сравнить также год, а не только месяц.Всегда безопаснее использовать заполнители внутри оператора SQL вместо конкатенации параметров:
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd yyyy");
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH, 1);
c = Calendar.getInstance(); // reset
String today = dateFormat.format(c.getTime());
String sql =
"SELECT Firstname FROM Members_Tbl WHERE " +
"substr(Start, 1, 3) = ? AND substr(Start, 8, 4) = ?";
pst = con.prepareStatement(sql);
pst.setString(1, today.substring(0, 3));
pst.setString(2, today.substring(7));
rs = pst.executeQuery();
monthlyreports.setModel(DbUtils.resultSetToTableModel(rs));
rs.close();
Редактировать Поскольку вы изменили формат дат на YYYY-MM-DD
,Вы можете использовать этот запрос:
String sql = "select * from Members_Tbl WHERE strftime('%Y-%m', Start) = strftime('%Y-%m', 'now')";