2010-08-29 23 views
0

你好我正在使用谷歌應用程序引擎並使用它的數據庫我試圖檢索數據並進行查詢,只搜索我想要的日期或時間。所以如果我想要9月9日的所有輸入日期,那麼它會給我所有9月份日期的列表。Java查詢日期不正常?

PersistenceManager pm = PMF.get().getPersistenceManager(); 
    List rules = null; 
    try { 
     String query = "SELECT FROM "+ 
        TestRule.class.getName()+ 
        " where"+ 
        " days > 31"; 
     System.out.println("query = "+query); 
     Query q = pm.newQuery(query); 
     q.setFilter("curDate < endDate"); 

     q.declareParameters("long curDate"); 
     Date curDate = new Date(); 

    rules = (List) q.execute(curDate.getTime()); 

     resp.setContentType("text/html; charset=UTF-8"); 
     PrintWriter out = resp.getWriter(); 
     if(rules != null) { 
      out.print("<p> Query result size = "+rules.size()+"</p>");      
     } else { 
      out.print("<p> Query returned null </p>");      
     } 


} finally { 
     pm.close(); 

} 
} 

測試規則類有數據庫的數據 並具有getter和setter。有誰知道如何做到這一點,如果有其他方式 比這將是偉大的。謝謝大家

回答

1

還有另一種更緊湊的方式來做到這一點: 您是否確定days > 31過濾器?

PersistenceManager pm = PMF.get().getPersistenceManager(); 
    List rules = null; 
    try { 

     Query query = new Query(TestRule.class, "curDate < endDate && days > 30");  
     q.declareParameters("long curDate"); 
     rules = (List) q.execute(new Date().getTime()); 

     return rules; 
}finally { 
    pm.close(); 
}