【发布时间】:2017-08-16 16:22:54
【问题描述】:
我有两个日期选择器从日期到日期。然后是一个文本框。选择日期并在文本框中输入一些名称后,我需要过滤表中的记录。我的表中有入学日期。我需要编写查询以便如果学生姓名匹配,并且如果 admissionDate 介于 fromdate 和 todate 之间,那么它应该显示记录
我正在编写此查询,但它不起作用。
SELECT studentId, studentName, admissionDate
from Student
where studentName like :studentName
AND admissionDate BETWEEN (fromDate like :fromDate AND toDate like :toDate)
order by studentId desc
从 DaoImpl 我得到 fromDate 和 toDate 值
DaoImpl
@Override
public List<Student> getSearchResultsByKeyword(String search,Date
fromDate,Date toDate) {
List<Student> users = new ArrayList<Student>();
System.out.println("Student Name:"+search+"fromDate:"+fromDate);
Query query =
sessionFactory.getCurrentSession().createSQLQuery(SEARCHSTUDENTS);
query.setParameter("studentName", "%"+search+"%");
query.setParameter("fromDate", fromDate);
query.setParameter("toDate", toDate);
/*query.setParameter("admissionDate","%"+search+"%");
query.setParameter("rollNumber","%"+search+"%");
query.setParameter("gender","%"+search+"%");*/
query.setResultTransformer
(Transformers.aliasToBean(Student.class));
users = query.list();
return users;
}
【问题讨论】:
-
*不工作是什么意思*。你有什么错误吗?
-
你的BETWEEN很奇怪……
-
我在 sql 语法中遇到错误
-
试试
... AND admissionDate BETWEEN :fromDate AND :toDate ... -
你能发布你遇到的错误吗?
标签: sql