有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

共 (3) 个答案

  1. # 1 楼答案

    您的查询中有一个输入错误

    它应该是contract.admissiondate

  2. # 2 楼答案

    试一试

    列出客户端=会话。createQuery(“从合同合同中选择Id_客户端,其中contart.admissiondate介于“+cast(datebegin为datetime)+”和“+cast(endate为datetime)+”之间”)。list()

  3. # 3 楼答案

    您为合同表添加了别名,但在获取admissiondate列时拼写错误。试试下面的方法

    列出客户端=会话。createQuery(“从合同合同中选择Id_客户端,其中Contract.admissiondate介于“+cast(datebegin为datetime)+”和“+cast(endate为datetime)+”之间”)。list()