PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

passer le paramètre Date pour créer une requête de plage de dates

Utilisez HttpServletRequest#getParameter() pour collecter les paramètres de la requête. En supposant que le champ de saisie porte le nom date .

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

Utilisez SimpleDateFormat#parse() pour le convertir en java.util.Date en utilisant un modèle spécifique, selon la façon dont l'utilisateur final a été invité à entrer la date.

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

Passez ceci comme argument de méthode à votre méthode DAO :

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

Vous devez le convertir en java.sql.Date , afin que vous puissiez utiliser PreparedStatement#setDate() pour le définir sur la requête SQL :

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

Vous pouvez utiliser WHERE date > ? pour rechercher des enregistrements plus récents que la date donnée, ou WHERE date < ? pour rechercher des enregistrements antérieurs à la date donnée, ou WHERE date BETWEEN ? and ? pour rechercher des enregistrements entre les dates spécifiées.