sql >> Base de Datos >  >> RDS >> PostgreSQL

pasar el parámetro de fecha para crear una consulta de rango de fechas

Use HttpServletRequest#getParameter() para recopilar parámetros de solicitud. Suponiendo que el campo de entrada tiene el nombre date .

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

Use SimpleDateFormat#parse() para convertirlo a java.util.Date usando un patrón específico, dependiendo de cómo se le pidió al usuario final que ingresara la fecha.

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

Pase esto como un argumento de método a su método DAO:

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

Debe convertirlo a java.sql.Date , para que pueda usar PreparedStatement#setDate() para configurarlo en la consulta SQL:

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

Puede usar WHERE date > ? para buscar registros más recientes que la fecha dada, o WHERE date < ? para buscar registros anteriores a la fecha dada, o WHERE date BETWEEN ? and ? para buscar registros entre las fechas especificadas.