sql >> Base de Datos >  >> RDS >> Mysql

ENTRE consultas usando JDBC con MySQL

En MySQL, la DATE type se asigna a la clase Java java.sql.Timestamp . Por lo tanto, debería trabajar con este tipo para crear su consulta, y no con java.util.Date . Aquí hay un código que genera las dos marcas de tiempo que necesitará:

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

Luego usa tu primer BETWEEN Consulta para obtener tu resultado:

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

Tenga en cuenta aquí que estoy usando un PreparedStatement parametrizado , lo que evita (o al menos reduce en gran medida) la posibilidad de inyección SQL.