sql >> Database >  >> RDS >> Mysql

TUSSEN query met behulp van JDBC met MySQL

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).



  1. Wachten op localhost, voor altijd!

  2. Laravel 4:Hoe pas ik een WHERE-voorwaarde toe op alle queries van een welsprekende klasse?

  3. Een logging-handler maken om verbinding te maken met Oracle?

  4. Meerdere variabelen doorgeven aan PHP met jQuery