java获取两个日期之间有准入的记录
我想从一个表中获取记录,其中准入日期在一个范围内,因此“datebegin”和“endate”是日期类型,而“准入日期”也是日期格式
List clients = session.createQuery("Select Id_Client from Contract contract where contract.admissiondate BETWEEN '"+ datebegin+"' and '"+endate+"'").list();
通过我的查询,我得到以下错误:
org.hibernate.QueryException: could not resolve property: admissiondate of: bean.Contract [Select Id_Client from bean.Contract contract where contract.admissiondate BETWEEN 'Sat Feb 15 00:00:00 CET 2014' and 'Mon Mar 17 00:11:24 CET 2014']
它说:
Conversion failed when converting date and/or time from character
# 1 楼答案
您的查询中有一个输入错误
它应该是
contract.admissiondate
# 2 楼答案
试一试
列出客户端=会话。createQuery(“从合同合同中选择Id_客户端,其中contart.admissiondate介于“+cast(datebegin为datetime)+”和“+cast(endate为datetime)+”之间”)。list()
# 3 楼答案
您为合同表添加了别名,但在获取admissiondate列时拼写错误。试试下面的方法
列出客户端=会话。createQuery(“从合同合同中选择Id_客户端,其中Contract.admissiondate介于“+cast(datebegin为datetime)+”和“+cast(endate为datetime)+”之间”)。list()