【发布时间】:2015-02-23 07:28:18
【问题描述】:
我有一个 HQL 查询,它根据用户时间戳从数据库中获取数据。查询工作正常,但没有获取我期望的确切数据。
例如:我通过了 02/16/2015,02/23/2015,我的 jsp 页面中的值作为开始日期和结束日期。我将这些值传递给 HQL。但是我的代码在 2015 年 1 月 16 日之间给出了结果和 2015 年 2 月 23 日。减少 1 个月。所以我想知道我怎样才能达到我的预期。下面是我的代码。谢谢。
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);
}
});
【问题讨论】: