sql >> Databasteknik >  >> RDS >> PostgreSQL

skickar datumparametern för att skapa datumintervallsfråga

Använd HttpServletRequest#getParameter() för att samla in förfrågningsparametrar. Förutsatt att inmatningsfältet har namnet date .

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

Använd SimpleDateFormat#parse() för att konvertera den till java.util. Datum med ett specifikt mönster, beroende på hur slutanvändaren ombads att ange datum.

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

Skicka detta som ett metodargument till din DAO-metod:

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

Du måste konvertera den till java. sql.Date , så att du kan använda PreparedStatement#setDate() för att ställa in den på SQL-frågan:

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

Du kan använda WHERE date> ? för att söka efter poster som är nyare än det angivna datumet, eller WHERE date för att söka efter poster som är äldre än det angivna datumet, eller WHERE date MELLAN ? och ? för att söka efter poster mellan de angivna datumen.



  1. förlorar anslutningen till mysql när du använder mysqldump även med parametern max_allowed_packet

  2. Databasinsättningsmekanism

  3. Hur kan jag korrekt använda ett PDO-objekt för en parameteriserad SELECT-fråga

  4. kan inte ladda oci8 -> Allvarligt fel:Anrop till odefinierad funktion oci_connect()