PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

passando il parametro Date per creare una query sull'intervallo di date

Usa HttpServletRequest#getParameter() per raccogliere i parametri della richiesta. Supponendo che il campo di input abbia il nome date .

String dateString = request.getParameter("date");

Usa SimpleDateFormat#parse() per convertirlo in java.util.Date utilizzando uno schema specifico, a seconda di come è stato chiesto all'utente finale di inserire la data.

Date date = null;

try {
    date = new SimpleDateFormat("yyyy-MM-dd").parse(dateString);
}
catch (ParseException e) {
    // Show error message to enduser about the wrong format and forward back to the JSP with the form.
    request.setAttribute("error", "Invalid format, please enter yyyy-MM-dd");
    request.getRequestDispatcher("search.jsp").forward(request, response);
    return;
}

Passa questo come argomento del metodo al tuo metodo DAO:

List<ParseBean> results = parseDAO.search(date);

Devi convertirlo in java.sql.Date , in modo da poter utilizzare PreparedStatement#setDate() per impostarlo sulla query SQL:

String query = "SELECT * FROM dateparse WHERE date = ?";
// ...
statement.setDate(1, new java.sql.Date(date.getTime()));

Puoi usare WHERE date > ? per cercare record più recenti della data indicata, oppure WHERE date < ? per cercare record più vecchi della data indicata, o WHERE date BETWEEN ? and ? per cercare i record tra le date specificate.