Di MySQL, DATE
ketik peta ke kelas Java java.sql.Timestamp
. Jadi Anda harus bekerja dengan tipe ini untuk membuat kueri Anda, dan bukan java.util.Date
. Berikut adalah kode yang menghasilkan dua stempel waktu yang Anda perlukan:
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());
Kemudian gunakan BETWEEN
pertama Anda kueri untuk mendapatkan hasil Anda:
PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)
Perhatikan di sini bahwa saya menggunakan PreparedStatement
parametrized , yang menghindari (atau setidaknya sangat mengurangi) kemungkinan injeksi SQL.