读书人

hql取生日有关问题

发布时间: 2012-10-25 10:58:57 作者: rapoo

hql取生日问题

?from Userinfo obj where month(obj.birthday) = ? and day(obj.birthday) = ?

?

?

转?http://fengzhiyin.iteye.com/blog/251373

HQL 处理日期比较 SQL Server

关键字: hql 日期 函数 query

?

java.sql.Date   beginDate=java.sql.Date.valueOf("2006-6-1");   java.sql.Date   endDate=java.sql.Date.valueOf("2006-6-2");       Stirng hql = "from table tb where tb.startdate <:endDate and tb.startdate >=:beginDate";  Query query = session.createQuery(hql);    query.setDate("beginDate",beginDate);   query.setDate("endDate",endDate);

?

?二、优化

??

特别提醒:

?

???? 当遇到查询从A(起始时期)到B(结束日期)的纪录时,

???? 如果数据库中字段类型为timestamp,那么查询2008-10-10到2008-11-11的纪录时不会出现2008-10-10那一天的纪录,哪怕你的比较符号用的是>=和<=;因为数据库中的2008-10-10的纪录是这样的格式

?? 2008-11-11 15:35:48:253,而query.setDate设置一个时间参数进去,他是用这个时间比较的
?? 2008-11-44 00:00:00 000,所以因该用:
query.setTimeStamp("end",endDate);
?如果从view层取到的date不包含后面的time信息,最好???????????????????
?endDate.setHours(23);endDate.setMinutes(59);endDate.setSeconds(59);
??对开始时间??????????????????
?startDate.setHours(0)startDate.setMinutes(0);startDate.setSeconds(0);
?这样就是查询 A-0:0:0 到 B-23:59:59时间段的数据?

读书人网 >软件架构设计

热点推荐