In MySQL is de DATE
type mappen naar de Java-klasse java.sql.Timestamp
. U zou dus met dit type moeten werken om uw query op te bouwen, en niet met java.util.Date
. Hier is de code die de twee tijdstempels genereert die je nodig hebt:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date startDate = formatter.parse(startDate);
java.util.Date endDate = formatter.parse(endDate);
java.sql.Timestamp start = new Timestamp(startDate.getTime());
java.sql.Timestamp end = new Timestamp(endDate.getTime());
Gebruik dan je eerste BETWEEN
query om uw resultaat te krijgen:
PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)
Merk op dat ik een geparametriseerde PreparedStatement
. gebruik , wat de mogelijkheid van SQL-injectie vermijdt (of in ieder geval sterk vermindert).