`
haijun.xu
  • 浏览: 7276 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hql取生日问题

阅读更多

 from Userinfo obj where month(obj.birthday) = ? and day(obj.birthday) = ?

 

 

 http://fengzhiyin.iteye.com/blog/251373

HQL 处理日期比较 SQL Server

关键字: hql 日期 函数 query

       Hibernate很大的一个特点就是屏蔽了数据库的差异,使用了hibernate就应该尽量HQL来操作数据库(除非不得不用数据库本身的一些特性),对于日期、时间类型的比较hibernate也提供很好的支持。

 

这里提供两种方式来处理HQL 日期、时间比较问题!

 

   一、常用

        

Sql代码 复制代码
写道
HQL: * and acceptDate<=:end 
 

 

    用一个时间类型来替换参数end:query.setDate("end",endDate);

    例:

java.sql.Date   beginDate=java.sql.Date.valueOf("2006-6-1");      

java.sql.Date   endDate=java.sql.Date.valueOf("2006-6-2");      

       

Stirng hql = "from table tb where tb.startdate <:endDate and tb.startdate >=:beginDate";     

  

Query query = session.createQuery(hql);   

       

query.setDate("beginDate",beginDate);      

query.setDate("endDate",endDate);  

 
java.sql.Date   beginDate=java.sql.Date.valueOf("2006-6-1");   
java.sql.Date   endDate=java.sql.Date.valueOf("2006-6-2");   
    
Stirng hql = "from table tb where tb.startdate <:endDate and tb.startdate >=:beginDate";  

Query query = session.createQuery(hql);
    
query.setDate("beginDate",beginDate);   
query.setDate("endDate",endDate);

 

 二、优化

  

Java代码 复制代码

String hql = "from TradeRecord as tr where tr.TradeTime>= :startTime "    

                   + "and tr.TradeTime <= :endTime and tr.CustomerId =:cid";    

  

String[] params = { "startTime""endTime""cid" };    

  

Object[] args = { startTime, endTime, new Long(cid) };    

  

List liste = this.getHibernateTemplate().findByNamedParam(hql, params, args);   

  

//startTime,endTime,cid是这个方法的参数  

String hql = "from TradeRecord as tr where tr.TradeTime>= :startTime " + "and tr.TradeTime <= :endTime and tr.CustomerId =:cid"; String[] params = { "startTime", "endTime", "cid" }; Object[] args = { startTime, endTime, new Long(cid) }; List liste = this.getHibernateTemplate().findByNamedParam(hql, params, args); //startTime,endTime,cid是这个方法的参数

特别提醒:

 

     当遇到查询从A(起始时期)到B(结束日期)的纪录时,

     如果数据库中字段类型为timestamp,那么查询2008-10-10到2008-11-11的纪录时不会出现2008-10-10那一天的纪录,哪怕你的比较符号用的是>=和<=;因为数据库中的2008-10-10的纪录是这样的格式

   2008-11-11 15:35:48:253,而query.setDate设置一个时间参数进去,他是用这个时间比较的
   2008-11-44 00:00:00 000,所以因该用:
Java代码 复制代码
query.setTimeStamp("end",endDate);
 如果从view层取到的date不包含后面的time信息,最好                   
Java代码 复制代码
 endDate.setHours(23);
endDate.setMinutes(59);
endDate.setSeconds(59);
  对开始时间                  
Java代码 复制代码
 startDate.setHours(0)
startDate.setMinutes(0);
startDate.setSeconds(0);
 
这样就是查询 A-0:0:0 到 B-23:59:59时间段的数据 
分享到:
评论

相关推荐

    HQL语句 HQL语句

    HQL语句 HQL语句 HQL语句 HQL语句 HQL语句

    HQL语句函数汇总(汇集了hql语句中大部分常用的函数)

    汇集了hql语句中大部分常用的函数 ABS(n) 取绝对值数学函数 数学函数 JPAQL HQL ABS(column_name[数字类型对象属性])

    hql ppt Hql PPt

    Hql PPt Hql PPt

    HQL Eclipse Plugins 配置教程

    不喜欢使用myEclipse的...最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。 由于MyEclipse是收费的,速度不是很理想。所以在网上找到了一个elipse插件 英文图文教程 ...

    HQL语法入门学习HQL语法入门学习

    在深入探讨HQL语法之前,我们首先需要理解什么是HQL。HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。与SQL(Structured Query Language)不同,HQL是专为ORM(Object-...

    hql语句 使用大全

    ### HQL语句使用大全 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. ...

    精通HQL(word格式)

    1. **类型安全**:HQL在编译时就能检查语法错误,避免了运行时的SQL注入问题。 2. **移植性**:由于是面向对象的,HQL与具体的数据库方言解耦,使得应用更容易跨数据库迁移。 3. **自动类型转换**:HQL自动处理Java...

    HQL查询pdf资料

    这种批量操作的优点在于提高了性能,特别是处理大量数据时,但同时可能引入缓存同步的问题。 #### 实体查询 HQL查询实体时,基本语法为`FROM`后面跟实体类名。例如,查询所有用户可以这样写: ```java String hql...

    sql转换hql工具

    之前写好SQL,再到代码里面来写,语句复杂的看的时不时细节会忘记,用sql转换hql工具,直接贴近了就可以了;

    精通HQL.doc

    本文将深入探讨HQL(Hibernate Query Language),它是Hibernate框架内官方推荐的查询语言,类似于SQL但更加面向对象。 HQL的基础在于它的语法与SQL相似,但更侧重于对象的查询,而不是数据库表。例如,你可以通过...

    精通hibernate HQL语言

    在深入探讨Hibernate的HQL语言之前,我们先理解一下什么是HQL。HQL,全称Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言,它的语法结构与SQL相似,但主要针对对象和实体进行操作,而不是...

    weblogic10.3 org.hibernate.hql.ast.HqlToken报错问题

    在本问题中,我们遇到了一个特定的错误,即“weblogic10.3 org.hibernate.hql.ast.HqlToken报错”,这涉及到Hibernate ORM框架和其在WebLogic上的运行。让我们深入探讨这个问题,以及可能的解决方案。 首先,`org....

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    标题:“全面解析HQL语句 非常详细直接的HQL语句的功能介绍” 描述:“非常详细直接实用的HQL语句的功能介绍看过的人保准都说好” 本篇文章将深入探讨HQL(Hibernate Query Language)的核心功能及其在数据查询...

    HQL语言大全 高清晰可复制版

    HQL,全称为Hibernate Query Language,是Hibernate框架中的查询语言,它允许开发者以类似SQL的方式查询对象。在Java开发中,尤其是在处理大量数据持久化时,Hibernate作为一个强大的对象关系映射(ORM)工具,极大...

    HQL查询及语法

    ### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...

    Hql多结果集

    ### HQL多结果集详解 #### 一、引言 HQL(Hibernate Query Language)是Hibernate框架提供的查询语言,它支持面向对象的语法结构,并且能够处理复杂的对象关系映射。在开发过程中,经常会遇到需要从数据库中获取多...

    HQL详解

    **HQL详解** Hibernate Query Language(HQL)是Hibernate框架中的对象关系映射查询语言,它允许开发者以面向对象的方式书写查询,而无需关心底层数据库的SQL语法。HQL是SQL的一个面向对象的版本,提供了更为简洁且...

    Hibernate查询语言HQL.PPT

    Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...

    hibernateHQL关联查询

    ### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...

Global site tag (gtag.js) - Google Analytics