问题一:
我页面得到了2个时间段,格式为 java.util.Date类型!数据库类型是Date类型而我用QBC查询这2个时间段的数据时有问题比如:

c.add(Restrictions.between("alarmlast",Mon Feb 22 14:51:34 CST 2010,Wed Mar 24 15:51:34 CST 2010)
这2个时间查出的结果得不到  3月24号当天的数据,我知道是因为跟数据库时间比较的时候格式成了 yyyy-MM-dd 00:00:00了 有什么办法解决?问题二:
就是我从数据库取出来的时间 只有年月日没有时分秒 ,数据库时间类型是date,SQL查出来的是Mon Feb 22 14:51:34 CST 2010这种格式,而页面取出来则是yyyy-MM-dd,  用
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
sdf.format(time)结果是yyyy-MM-dd 00:00:00 !
请高手帮忙!!!!!

解决方案 »

  1.   

    criteria.add(Restrictions.sqlRestriction("to_char({alias}.dqrq,'yyyy-MM-dd HH:mm:ss')= ?", dqrq,Hibernate.STRING));Restrictions.sqlRestriction("")里面可以写SQL语句,如上
      

  2.   

    用SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    sdf.format(time)结果是yyyy-MM-dd 00:00:00 !
    上面的结果是必然的啊。因为你格式化成
    yyyy-MM-dd HH:mm:ss这样的
    如果只要年月日,就格式化成yyyy-MM-dd
      

  3.   

    我就是要取出年月日时分秒啊   现在只能获取年月日,我换了java.sql.Date也不行~  对了 如何把Restrictions.sqlRestriction(" CONVERT(varchar, 时间字段, 120 )")  
    变成 select CONVERT(varchar, 时间字段, 120 ) from table1 这样!
    因为criteria.add(...)的话 CONVERT(varchar, 时间字段, 120 )就跑到where后面去了!
      

  4.   

    问题二解决了 !我靠 原来是映射文件type="date"  改成 type="java.util.Date" 就OK了 !!
    结账