簡體   English   中英

為什么查詢不返回值

[英]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 formatString

嘗試這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM