PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Datumsparameter übergeben, um eine Datumsbereichsabfrage zu erstellen

Verwenden Sie HttpServletRequest#getParameter() Anforderungsparameter zu sammeln. Angenommen, das Eingabefeld hat den Namen date .

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

Verwenden Sie SimpleDateFormat#parse() um es in java.util.Date nach einem bestimmten Muster, je nachdem, wie der Endbenutzer aufgefordert wurde, das Datum einzugeben.

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;
}

Übergeben Sie dies als Methodenargument an Ihre DAO-Methode:

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

Sie müssen es in java.sql.Date , sodass Sie PreparedStatement#setDate() um es auf die SQL-Abfrage zu setzen:

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

Sie können WHERE date > ? verwenden um nach Datensätzen zu suchen, die neuer als das angegebene Datum sind, oder WHERE date < ? um nach Datensätzen zu suchen, die älter als das angegebene Datum sind, oder WHERE date BETWEEN ? and ? um nach Datensätzen zwischen den angegebenen Daten zu suchen.