V MySQL, DATE
zadejte mapy do třídy Java java.sql.Timestamp
. Při sestavování dotazu byste tedy měli pracovat s tímto typem, nikoli s java.util.Date
. Zde je kód, který generuje dvě časová razítka, která budete potřebovat:
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());
Pak použijte svůj první BETWEEN
dotaz k získání výsledku:
PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)
Všimněte si, že používám parametrizovaný PreparedStatement
, což zamezuje (nebo alespoň výrazně snižuje) možnost vkládání SQL.