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

Requête BETWEEN utilisant JDBC avec MySQL

Dans MySQL, la DATE le type correspond à la classe Java java.sql.Timestamp . Vous devriez donc travailler avec ce type pour construire votre requête, et non java.util.Date . Voici le code qui génère les deux horodatages dont vous aurez besoin :

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());

Utilisez ensuite votre premier BETWEEN requête pour obtenir votre résultat :

PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
                                             WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)

Notez ici que j'utilise un PreparedStatement paramétré , ce qui évite (ou du moins réduit considérablement) la possibilité d'injection SQL.