HQL与SQL关于DATEDIFF的使用工作备份

原创 2011年01月20日 16:53:00

1.       select o.id from insuranceorder as o where  (select datediff(o.expireDate,o.buyDate)<1460 ) and  (select datediff(o.expireDate,o.buyDate)>=1095)

 

2.       select v.id from vehicleorder as v where v.insuranceOrderId  in(select o.id from insuranceorder as o where  (select datediff(o.expireDate,o.buyDate)<1460 ) and  (select datediff(o.expireDate,o.buyDate)>=0))

 

3.       select count(*) from vs_mortgage_application as m where m.mortgageCompany = ' 中国银行广州白云支行 ' and m.vehicleOrderId  in (select v.id from vehicleorder as v where v.insuranceOrderId  in(select o.id from insuranceorder as o where o.companyName = ' 中国太平洋财产保险股份有限公司广东分公司 ' and (select datediff(o.expireDate,o.buyDate)<1460 ) and  (select datediff(o.expireDate,o.buyDate)>=0)))

 

3 是正确得到的 SQL 语句

 

HQL 中不支持 datediff ,故以下方法作废,复制于此,以作备份

 

 

 

 

public List findInsuranceOrder(String mortgageCompany, String companyName, int start,int end) {

        return em.createQuery("select object(o) from VsMortgageApplication as o " +
                              "where o.mortgageCompany like :mortgageCompany " +
                              "and o.vehicleOrder.insuranceOrder.companyName like :companyName " +
                              "and (select datediff(o.vehicleOrder.insuranceOrder.expireDate,o.vehicleOrder.insuranceOrder.buyDate)>= :start)" +
                              "and (select datediff(o.vehicleOrder.insuranceOrder.expireDate,o.vehicleOrder.insuranceOrder.buyDate)< :end)").setParameter("end", end).setParameter("start", start).setParameter("mortgageCompany", "%" + mortgageCompany + "%").setParameter("companyName", "%" + companyName + "%").getResultList();

    }

 

 

 

 

相关文章推荐

SQL中DATEADD和DATEDIFF的使用方法

DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期,DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。 SQL Server DATEADD() 函数 ...

使用DATEADD和DATEDIFF来计算SQL Server的DATETIME值

在SQL Server数据库中,DATETIME和SMALLDATETIME值是以整数存储的。然而,与整数不同的是,它们不能直接地进行数学运算。尽管如此,有时候还是需要在日期/时间值中添加或减去一个时...

sql语句case when使用和date_formate()的使用,DATEDIFF(字段1,字段2)获取天数,常用的MYSQL的函数

SELECT cm.id,cm.content,DATE_FORMAT(cm.created_time,'%Y-%m-%d %H:%i:%s') created_time,cm.fabulous_nu...

SQL中DATEADD和DATEDIFF的用法

  • 2010年05月31日 18:46
  • 37KB
  • 下载

ACCESS查询当天数据的SQL语句(DateDiff函数)

ACCESS语句:select * from 数据表 where (DateDiff(d,日期字段,Date())=0)  语法DateDiff(interval, date1, date2 [, f...

SQL Server中 DateDiff计算时间差

 转自:http://blog.163.com/happy_2010_zyj/blog/static/1511487562010424113143364/ DATEDIFF 函数 [日期和...

SQL中DATEADD和DATEDIFF的用法

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函...
  • upi2u
  • upi2u
  • 2014年07月15日 22:05
  • 1209

SQL Server 常用日期函数DateDiff()、GetDate() 以及oracle 日期常用函數 (SYSDATE、日期格式)等详解

SQL Server 常用日期函数DateDiff()、GetDate() 以及oracle 日期常用函數 (SYSDATE、日期格式)等详解 一、GetDate() 函数 作...

DateDiff 函数的用法 SQL时间比较

DateDiff 函数的用法 SQL时间比较 DateDiff   DateDiff: SQL server函数    返回 Variant (Long) 的值,表示两个指定日期...

SQL Server 日期的加减函数: DATEDIFF DATEADD

SQL Server 日期的加减函数: DATEDIFF    DATEADDDATEDIFF: 返回跨两个指定日期的日期边界数和时间边界数, 语法:DATEDIFF ( datepart , sta...
  • xyzqiang
  • xyzqiang
  • 2011年06月30日 17:50
  • 102605
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HQL与SQL关于DATEDIFF的使用工作备份
举报原因:
原因补充:

(最多只允许输入30个字)