1
我有一個HQL查詢從數據庫中獲取數據給定的用戶時間戳。查詢工作正常,但不能獲取我期望的確切數據。如何根據HQL中的時間戳範圍從數據庫中獲取數據
例如:我通過了02/16/2015,02/23/2015,我的jsp頁面中的值作爲開始日期和結束日期。我將這些值傳遞給HQL.但我的代碼給出了01/16/2015和02/23/2015.reduce 1 month.so我想知道我怎麼能達到我期望的。下面是我的code.Thank你。
public static List<TestResult> getTestResulDataSet(String sDate,String eDate) {
final Map<String,List<TestResult> > dataSet = new HashedMap();
DateFormat df = new SimpleDateFormat("mm/dd/yyyy");
Date date1=null, date2=null;
String Rsdate=sDate;
String Redate=eDate;
try {
date1 = (Date) df.parse(Rsdate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
date2 = (Date) df.parse(Redate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final Date date3=date1;
final Date date4=date2;
Transactions.exec(new Procedure() {
@Override
public void execute() throws Throwable {
List<TestResult> rs = new ArrayList();
rs = Transactions.getSession().createCriteria(TestResult.class).add(Restrictions.ge("timestamp",date3)).add(Restrictions.le("timestamp",date4)).list();
dataSet.put("TestResult", rs);
}
});
謝謝您的回答,但仍然不work.the問題是我不能獲取當前月份的數據。 – gihan 2015-02-23 09:47:19
你確定日期沒有解決嗎?無論哪種方式,這是一個錯誤。假設我的日期爲2015年2月11日,在2015年1月11日的小時00:02:00(2分鐘)使用新的SimpleDateFormat(「mm/dd/yyyy」)結果,同時使用新的SimpleDateFormat(「 MM/dd/yyyy「)給出日期2015年2月11日小時00:00:00。有月份差異。 – Mythul 2015-02-23 10:19:33
也許這個問題也可以幫助你:http://stackoverflow.com/questions/21265134/hql-to-query-records-between-two-dates – Mythul 2015-02-23 10:23:47