PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

passando o parâmetro Date para criar a consulta de intervalo de datas


Use HttpServletRequest#getParameter() para coletar parâmetros de solicitação. Supondo que o campo de entrada tenha o nome date .
String dateString = request.getParameter("date");

Use SimpleDateFormat#parse() para convertê-lo em java.util.Date usando um padrão específico, dependendo de como o usuário final foi solicitado a inserir a 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;
}

Passe isso como um argumento de método para seu método DAO:
List<ParseBean> results = parseDAO.search(date);

Você precisa convertê-lo para java.sql.Date , para que você possa usar PreparedStatement#setDate() para configurá-lo na consulta SQL:
String query = "SELECT * FROM dateparse WHERE date = ?";
// ...
statement.setDate(1, new java.sql.Date(date.getTime()));

Você pode usar WHERE date > ? para pesquisar registros mais recentes que a data especificada ou WHERE date < ? para procurar registros mais antigos que a data especificada, ou WHERE date BETWEEN ? and ? para procurar registros entre as datas especificadas.