mysql里面存储的数据是datatime类型的时间,现在想用hibernate调出比这个时间早的所有数据,不是报错就是找不到。
如果我把数据库里面的dattime类型改成date类型,程序OK,但是现在时要精确到分钟,必须要用datetime。
把时间以字符串的方式村进去也是可以的,但是不符合规范,想请教下有什么办法在java中调用比较mysql里面的datetime
********
List mylist = session.createCriteria(ParkNews.class).add(
Restrictions.lt("nowDate", DateUtil.getDateTime(DateUtil.getDateTimeStr(date)))).list();String hql="select * from ParkNews p where p.nowDate<"+DateUtil.getDateTimeStr(date);
List mylist=session.createQuery(hql).list();这是java中执行语句,传Date第一是无数据,第二个是报错。

解决方案 »

  1.   

    String hql="select * from ParkNews p where p.nowDate<'"+DateUtil.getDateTimeStr(date)+"'";加上‘号试试。
    另外还可以打开MYSQL的通用查询日志,然后看看提交到MYSQL端的语句到底是什么。
      

  2.   

    将hql中的内容显示出来看看,在MYSQL中日期时间要加单引号
      

  3.   


    String hql="select * from ParkNews p where p.nowDate<"+DateUtil.getDateTimeStr(date);这句中,打印出来hql语句吧,或者在后台开启sql显示功能,打印出来最原始的sql语句看看吧!
      

  4.   


    where 日期字段,如果是字符串进来的,必须加''括起来的。