Hibernate Criteria 查询日期条件
如何在Hibernate中使用Criteria对数据库中的时间类型字段进行条件查询比如数据库中有birthday字段,需要查询出所有12月份过生日的数据使用sql可以bi...
如何在Hibernate中使用Criteria对数据库中的时间类型字段进行条件查询
比如数据库中有birthday字段,需要查询出所有12月份过生日的数据
使用sql可以birthday like '%-12-%'
用sql函数可以month(birthday) = 12
如果用Criteria如何实现类似的查询?
直接用Restrictions.like的话会出现java.lang.ClassCastException异常
Date类型不会无法直接转型成String
请问正确的使用Criteria指定查询日期字段中某一部分是用什么方法。
万分感谢 展开
比如数据库中有birthday字段,需要查询出所有12月份过生日的数据
使用sql可以birthday like '%-12-%'
用sql函数可以month(birthday) = 12
如果用Criteria如何实现类似的查询?
直接用Restrictions.like的话会出现java.lang.ClassCastException异常
Date类型不会无法直接转型成String
请问正确的使用Criteria指定查询日期字段中某一部分是用什么方法。
万分感谢 展开
1个回答
追问
我是想查询所有月份是12的字段
但是如果把条件转换成日期类型的话 Date类型是一定会包含完整日期的
比如new SimpleDateFormat("MM").parse("12");的话生成的日期是
1970-12-01 00:00:00.0
还是没办法指定查询12月
有没有什么办法可以让Criteria使用Sql函数
类似month()这样的方法获取到字段的月份直接比较?
追答
我知道有一种SQL是
sql = "select * from superwin.test "
+ "where DATE_FORMAT(c16,'%Y%m%d%H%i%s') >= '" + DateUtil.formatDate("yyyyMMdd", ddeTime)+ "084500" + "' "
+ "and DATE_FORMAT(c16,'%Y%m%d%H%i%s') <= '" + DateUtil.formatDate("yyyyMMdd", ddeTime) + "134500" + "' ";
你可以看看你的有没有这类型的!!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询