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();

    }

 

 

 

 

hql语句

简介hql为hive sql的缩写。hive本身为java语言开发而成,所以hive上面如果有什么特殊需求,完全可以是用hive udf订制自己的需求(后续会介绍udf的开发方法)。 语法以下只列举一...
  • meiyuli
  • meiyuli
  • 2016年01月05日 19:57
  • 602

SQL datediff (时间差)

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

VB.NET函数——日期时间函数

一> 获取/设置目前日期时间函数  (1)Now ():返回系统目前的日期和时间。如:2007-3-29 早上10:38:22  (2)Today ():返回或设置系统目前的日期。  (3)...
  • sxycgxj
  • sxycgxj
  • 2013年04月02日 10:34
  • 4645

sqlserver中返回两个日期间相差几年零几月零几天,DATEDIFF通常不准确

--实际差12月+1天 select DATEDIFF(M,'2013-08-31','2014-09-01') as [13] ,DATEDIFF(D,'2013-08-31','2014-09-0...
  • kk185800961
  • kk185800961
  • 2013年09月04日 12:18
  • 6102

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...
  • wd521521
  • wd521521
  • 2017年05月23日 00:02
  • 937

DateDiff函数的使用

机房收费系统中时间计算中需要用到时间函数,这次遇到这个不知道的,我好好的查了一下。        DATEDIFF函数计算指定的两个日期中第二个日期与第一个日期的时间差的日期部分.返回Variant(...
  • gaibian0823
  • gaibian0823
  • 2013年11月26日 14:39
  • 2100

sql查询今天昨天上周近三十天

【SQL之查询】MySQL查询今天、昨天、上周、近30天、去年等的数据的方法 一、MySQL查询今天、昨天、上周、近30天、去年等的数据的方法: 删...
  • IT_zkc
  • IT_zkc
  • 2016年12月16日 14:37
  • 463

时间差(类.精确到秒).net中实现Datediff类C#

.NET中,经常用到两个时间的比较,如,新闻列表后显示(5分钟前)要比显示(2010-2-22 12:50)这样的时间格式直观得多了。显示结果如: ,以下是详细类代码. using System;us...
  • wybshyy
  • wybshyy
  • 2016年07月29日 14:05
  • 962

SQL中DATEADD和DATEDIFF的使用方法

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

HQL笔记——常用函数

SUBSTRIGN(要截取的字符属性字段, 开始位置, 截取长度) 字符截取 TRIM(字符串对象属性列) 去掉两端的空格 LOWER(字符串对象属性列) 转换小写 UPPER(...
  • suhuafu
  • suhuafu
  • 2014年02月25日 14:33
  • 5178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HQL与SQL关于DATEDIFF的使用工作备份
举报原因:
原因补充:

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