浏览 9341 次
锁定老帖子 主题:hiberante 查询问题 格式化日期
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-23
如果将查询条件写在hql中,比如: String hql = "from PojoA as a where a.createDate = ? "; Query query = session.createQuery(hql);//不使用createSQLQuery() Date date = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { date = sdf.parse("2008-03-06"); } catch (ParseException e) { e.printStackTrace(); } query.setDate(0, date); List list = query.list(); 但是a.createDate的格式是 年月日 时分秒,我的意思是怎么将 hql = "from PojoA as a where a.createDate = ? ";中的createDate的格式转换为 年月日呢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-23
这是一个常见的sql查询问题,你可以改成用区间判断:
hql = "from PojoA as a where a.createDate >= ? and a.createDate < ?" 然后传递2个值,一个是parse日期后的Date,另外一个就是这个Date + 1天 |
|
返回顶楼 | |
发表时间:2008-04-23
Quake Wang 写道 这是一个常见的sql查询问题,你可以改成用区间判断: hql = "from PojoA as a where a.createDate >= ? and a.createDate < ?" 然后传递2个值,一个是parse日期后的Date,另外一个就是这个Date + 1天 是不是关于使用hibernate来进行日期的比较查询时,基本都使用这种方式来处理呢?还有没有比这个更加简单的处理方式呢? |
|
返回顶楼 | |
发表时间:2008-04-23
除了上面的
要是数据不多,就用个like time% 要是有left()的话,就用个left(a.createDate,10) = time |
|
返回顶楼 | |
发表时间:2008-05-04
import 写道 除了上面的
要是数据不多,就用个like time% 要是有left()的话,就用个left(a.createDate,10) = time 有一个比较简单的方法 用setTimestamp 来设置参数 |
|
返回顶楼 | |
发表时间:2008-05-07
import 写道 除了上面的
要是数据不多,就用个like time% 要是有left()的话,就用个left(a.createDate,10) = time left() 的用法不懂,可以解释一下吗?? |
|
返回顶楼 | |