Mysql
 sql >> Database >  >> RDS >> Mysql

BETWEEN query utilizzando JDBC con MySQL

In MySQL, il DATE type maps alla classe Java java.sql.Timestamp . Quindi dovresti lavorare con questo tipo per creare la tua query e non con java.util.Date . Ecco il codice che genera i due timestamp di cui avrai bisogno:

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

Quindi usa il tuo primo BETWEEN query per ottenere il risultato:

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

Nota qui che sto usando un PreparedStatement parametrizzato , che evita (o almeno riduce notevolmente) la possibilità di SQL injection.