六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 134|回复: 0

HIbernate 的时间戳比较

[复制链接]

升级  4.67%

60

主题

60

主题

60

主题

举人

Rank: 3Rank: 3

积分
214
 楼主| 发表于 2013-2-7 20:32:00 | 显示全部楼层 |阅读模式
原文http://hi.baidu.com/mwm2007/blog/item/068271668924b226ab184cd0.html



hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),而对于时间类型的比较hibernate也是支持的。HQL:     and acceptDate<=:end 用一个时间类型来替换参数end:query.setDate("end",endDate);顺便在提一个问题,我们经常碰到查询从A(起始时期)到B(结束日期)的纪录。如果数据库中字段类型为timestamp,那么查询2005-11-23到2005-11-23的纪录时不会出现2005-11-23那一天的纪录,哪怕你的比较符号用的是>=和<=;因为数据库中的2005-11-23的纪录是这样的格式2005-11-23 15:35:48:253,而query.setDate设置一个时间参数进去,他是用这个时间比较的2005-11-23 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时间段的数据.



该文中Date的方法都是过期的..寻找不过期方法..
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表