admin管理员组文章数量:1794759
criteria和oracle数据库使用,java
我想按时间选择实体.
我有字段类型为DATE的Oracle DBMS,其中包含日期和时间.这是我的代码.如何按时间标准选择数据?
Calendar timeCal = new GregorianCalendar(0,0,0,0,0,0);
Date timeMin = timeCal.getTime();
timeCal.add(Calendar.HOUR_OF_DAY, 1);
Date timeMax = timeCal.getTime();
if (minDate != null && maxDate != null)
criteria.add(Restrictions.between("eventDate", minDate, maxDate));
if (onDate != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(onDate);
calendar.add(Calendar.DAY_OF_MONTH, 1);
criteria.add(Restrictions.between("eventDate", onDate, calendar.getTime()));
}
if(minTime!=null&&maxTime!=null){
/*
How to add Restriction on eventDate field, for time only?
if minTime is 3:00 and maxTime is 16:00, must to return
all rows having the time part of their eventDate between
3:00 and 16:00, regardless of the date part
*/
}
解决方法:
我找到答案.只需要使用sqlRestriction.
criteria.add(
Restrictions.sqlRestriction(
" NUMTODSINTERVAL(EVENT_DATE - TRUNC(EVENT_DATE), 'DAY') BETWEEN NUMTODSINTERVAL (?,'SECOND') AND NUMTODSINTERVAL (?,'SECOND')",
new Object[] { secondsForBegin, secondsForEnd },
new Type[] { StandardBasicTypes.INTEGER, StandardBasicTypes.INTEGER }));
标签:oracle,hibernate,criteria,java,time
来源: .html
本文标签: criteria和oracle数据库使用java
版权声明:本文标题:criteria和oracle数据库使用,java 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1699943970a380862.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论