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