Trong MySQL, DATE
nhập bản đồ vào lớp Java java.sql.Timestamp
. Vì vậy, bạn nên làm việc với kiểu này để tạo truy vấn của mình, chứ không phải java.util.Date
. Đây là mã tạo ra hai dấu thời gian bạn sẽ cần:
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());
Sau đó, sử dụng BETWEEN
đầu tiên của bạn truy vấn để nhận được kết quả của bạn:
PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)
Lưu ý ở đây rằng tôi đang sử dụng PreparedStatement
được tham số hóa , điều này tránh (hoặc ít nhất là làm giảm đáng kể) khả năng bị chèn SQL.