public <E> List viewc(String a,String c) {
List l1=new ArrayList();
try {
con = utilimpl.openSession();
if(con != null)
{
st = con.beginTransaction();
Query q=con.createQuery("FROM "+a+" WHERE cdate="+c+"");
l1=q.list();
st.commit();
}
else
{
System.out.println("no connection found!!");
}
} catch (HibernateException e) {
e.printStackTrace();
if(st != null)
{
st.rollback();
}
}
return l1;
}
下面的代码是servlet的doget方法代码。我想得到数据列表。cdate是我数据库的列,datatype是mysql中的timestamp。
SimpleDateFormat k=new SimpleDateFormat("yyyy-MM-dd");
Date s=new Date();
String c=k.format(s);
List<userModel> ln=d.viewc("userModel",c);
request.setAttribute("list",ln);
1条答案
按热度按时间c9x0cxw01#
由于cdate是timestamp类型,它由日期+时间组成,并且您试图仅用相等的值比较超过日期的部分。
尝试以下操作:
编辑:为了使比较工作,c和cdate的值应该采用相同的格式。为了实现这一点,可以对查询进行如下修改:
此处c的格式应为:“yyyy-mm-dd”,例如“2019-01-19”
date\格式将结果日期转换为所需的字符串格式,现在与'c'的比较应该是正确的。