hql中怎样计算两个日期之间的天数
比如sql的方法是这样的select * from tubulation t where datediff(dy,t.tbuildtime,getdate())>20
请问hql怎么解决这个问题,谢谢!!
实体类为Tubulation
数据库为sqlserver

解决方案 »

  1.   

    。难道昨天给你解决的回帖你没仔细看吗?
    那你还是执行操作sql语句吧session.createSQLQuery(sql).list();sql传你写的sql语句就可以了。
      

  2.   


    看了啊,但是项目在经理的框架下写的,不让写sql啊
      

  3.   

    同是天涯沦落人啊,我们的解决办法是写两个查询接口,在java判断,其他的都丢给服务器去解决吧最后涉及到union查询的时候,你还是得用sql,避免不了的
      

  4.   

    忘了,如果让你都用Criteria的时候,你就会发现,性能啥啥啥的,已经不是我们所关心的问题了
      

  5.   


    不让写sql就得问下经理  日期的函数如何搞。
      

  6.   

    记得之前 我在项目中也遇到同样问题 查了好半天资料没有找到解决办法   最后看hibernate API时自己解决了  具体的方法代码忘记了   记得大概这样做得   function (实体类)实体类.getDate()----》to_date()转换做比较
    27.计算时间差
    注:oracle时间差是以天数为单位,所以换算成年月,日select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual //时间差-年
    select ceil(moths_between(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual //时间差-月
    select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual //时间差-天
    select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual //时间差-时
    select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual //时间差-分
    select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual //时间差-秒 28.更新时间
    注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n*365,'yyyy-mm-dd hh24:mi:ss') as newTime from dual //改变时间-年
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),add_months(sysdate,n) as newTime from dual //改变时间-月
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n,'yyyy-mm-dd hh24:mi:ss') as newTime from dual //改变时间-日
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24,'yyyy-mm-dd hh24:mi:ss') as newTime from dual //改变时间-时
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual //改变时间-分
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(sysdate+n/24/60/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual //改变时间-秒