[英]Why query is not returning value
為什么此查詢不返回任何值。 我的數據庫中有值在該范圍內
價值輸入是
Date startDate = (Date) data.get("startDate");//2014-04-01
Date endDate = (Date) data.get("endDate");//2014-04-30
int pagesize=10;
sql查詢是
String query = "select * from bill_details "
+ " where status=? "
+ " AND date(add_date) BETWEEN " + startDate + " AND " + endDate
+ " order by add_date desc limit " + pagesize;
ps = con.prepareStatement(query);
ps.setString(1, dataStatus);
System.out.println("Before execution");
res = ps.executeQuery();
您正在嘗試將Date
對象連接到String
。 即使這樣可行,那么日期也不會被查詢中的引號括起來。
使用SimpleDateFormat將Date format
為String
。
嘗試這個:
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
String query = "select * from bill_details "
+ " where status='active' "
+ " AND date(add_date) BETWEEN date('" + df.format(startDate) + "')"
+ " AND date('" + df.format(endDate) + "') " +
+ " order by add_date desc limit " + pagesize;
嘗試這個:
Date startDate = (Date) data.get("startDate");//2014-04-01
Date endDate = (Date) data.get("endDate");//2014-04-30
int pagesize=10;
String query = "select * from bill_details "
+ " where status=? "
+ " AND date(add_date) BETWEEN ? AND ?"
+ " order by add_date desc limit ?";
ps = con.prepareStatement(query);
ps.setString(1, dataStatus);
ps.setDate(2, startDate);
ps.setDate(3, endDate);
ps.setInt(4, pagesize);
System.out.println("Before execution");
res = ps.executeQuery();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.