`
lokepaqi
  • 浏览: 46094 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hql关于时间的查询

SUN 
阅读更多

 

// String hql = " from Tbonusgoods goods,Tbonusrule rule where
    // goods.tbonusrule=rule.eventPkid "
    // + "and rule.startDate between :d1 and :d2";
 String hql = " from Tbonusgoods goods,Tbonusrule rule where goods.tbonusrule=rule.eventPkid "
      + "and rule.startDate >= :d1 and rule.endDate <= :d2";
    try {
     Query q = this.getSession().createQuery(hql);
     ChangeDate cd = new ChangeDate();
     cd.setStartDate("2007-12-02");
     cd.setEndDate("2007-12-05 ");
     System.out.println(cd.getStartDate());
     q.setDate("d1", cd.getStartDate());
     q.setDate("d2", cd.getEndDate());
     List list = q.list();
     System.out.println(list.size());
     return list;
    } catch (RuntimeException re) {
     re.printStackTrace();
     return null;
    }

处理函数:
 public class ChangeDate {
 private String startDate;

 private String endDate;

 //private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd   HH:mm:ss ");
 private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

 public Date getStartDate() {
    Date d = null;
    try {
     if (startDate != null && !startDate.equals(" ")) {
      d = sdf.parse(this.startDate);
      // System.out.println(d.toLocaleString());
     }
    } catch (Exception e) {
     d = null;
     e.printStackTrace();
    }
    System.out.println(d);
    return d;
 }

 public void setStartDate(String startDate) {
    this.startDate = startDate;
 }

 @SuppressWarnings("deprecation")
 public Date getEndDate() {
    Date d = null;
    try {
     if (endDate != null && !endDate.equals(" ")) {
      d = sdf.parse(this.endDate);
     
      // System.out.println(d.toLocaleString());
     }
    } catch (Exception e) {
     d = null;
     e.printStackTrace();
    }
    System.out.println(d);
    d.setDate(d.getDate()+1);//保证在查询的时候,当天的数据能被获得
    return d;
 }

 public void setEndDate(String endDate) {
    this.endDate = endDate;
 }

}



其中出现的问题希望记录一下:(数据库存储的格式是yyyy-MM-DD)

1、在查询的时候,打印出来的时间如下:

Sun Dec 02 00:00:00 CST 2007
Wed Dec 05 00:00:00 CST 2007

看到了,尽管使用了"<=" 但5号当天是数据是查不出来是,因为从上面就可以看出,如果小于的话,也是等于零点的,也就是说查询到了4号的数据,这样不可以,所以在程序中自动让他加了一天。

还有between里面也回出现上面的问题,边缘值查不到

 

分享到:
评论

相关推荐

    hibernate的HQL的模糊查询

    HQL模糊查询是开发者在进行数据检索时常用的一种功能,它允许我们根据部分关键词或者通配符来查找匹配的数据。下面我们将深入探讨Hibernate的HQL模糊查询及其应用。 一、HQL概述 HQL是一种面向对象的查询语言,它的...

    HQL查询及语法

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

    Hibernate之HQL查询

    在Hibernate中,HQL(Hibernate Query Language)是其内置的一种面向对象的查询语言,它是SQL的面向对象版本,用于检索和操作持久化对象。HQL查询的使用极大地提高了开发效率,因为它将数据操作与具体的数据库结构...

    NHibernate HQL 条件查询

    2. **时间范围查询**: ```csharp iReceivingCriteria.Add(Restrictions.Between("BusinessDate", criteria.BeginDate, criteria.EndDate)); ``` 3. **多条件或查询**: ```csharp list = DeliveryDao.Current...

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

    在`findPersonByHappenDate`中,还涉及到日期的解析和设置,这是在处理时间相关的查询时常见的做法。 总结来说,HQL是Hibernate中进行对象查询的关键部分,它简化了与数据库的交互,让开发者可以更加专注于业务逻辑...

    关于HQL相关的论文

    2. **函数与操作符**:HQL提供了丰富的函数,如聚合函数(sum、avg等)、日期时间处理函数,以及比较操作符(=、&lt;、&gt;等)。 3. **动态查询**:通过使用Criteria API或者Querydsl等工具,可以构建动态HQL,实现灵活...

    hibernate02:session对象、hql查询、在线查询也叫对象查询、离线查询

    相反,离线查询则是在程序启动或者特定时间点执行,将结果存储到内存或者其他临时存储介质中,后续操作基于这些预计算的结果。离线查询可以提高性能,因为它减少了数据库的交互,但可能会因为数据不实时而牺牲一部分...

    HQL语句的语法

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的SQL-like语言,它允许开发者以面向对象的方式来查询数据库。HQL语句的语法结构与SQL相似,但更注重对象和类的概念。以下将详细介绍...

    HQL学习教程Hibernate入門

    HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,与SQL类似,但更加面向对象,使得开发者在处理数据时更加便捷。 在学习HQL之前,首先需要理解Hibernate的核心概念。Hibernate通过映射...

    hql批量删除

    Hibernate查询语言(HQL)是一种面向对象的查询语言,它允许开发者以面向对象的方式来操作数据库中的数据。HQL与SQL有些相似,但是它是基于类和属性而非数据库表和列的。HQL是Hibernate框架的核心组件之一,它支持...

    Hibernate 查询经典练习题

    在本文中,我们将探讨基于Hibernate的查询实践,包括HQL(Hibernate Query Language)和Criteria API的使用。我们将通过两个经典的练习题来深入理解这两个查询方式,并讨论它们在处理不同查询需求时的特点。 ### ...

    hibernate的hql语句

    6. **函数与操作符**:HQL支持多种函数,如聚合函数(`count`、`sum`、`avg`、`max`、`min`)和日期时间操作。同时,它也支持比较操作符(`=`, `, `&gt;`, `, `&gt;=`, `!=`),逻辑操作符(`and`, `or`, `not`),以及...

    HQL(Hibernate Query Language):

    HQL还提供了更高级的功能,如命名参数、集合操作(IN, NOT IN)、日期和时间函数、空值处理等。这些特性使得开发者能够在不直接接触底层SQL的情况下,高效地进行数据操作。 在实际应用中,HQL通过Hibernate的...

    NHibernate hql 可用函数,函数大全

    ### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。

    监控sql输出-可以查看hql转成sql的结果值

    通过这样的监控,我们可以获取到执行时间、次数、参数等信息,有助于找出慢查询,定位性能瓶颈,还可以发现潜在的SQL错误。同时,对于复杂的应用场景,例如分页、联接、子查询等,理解HQL到SQL的转换过程有助于我们...

    04-HQL高级.pdf

    从给定的文件信息来看,主要内容集中在HQL(Hibernate Query Language)的高级应用,包括HQL的优化、数据检索策略,以及本地SQL查询等。以下是对这些知识点的详细阐述: ### HQL高级应用 #### HQL优化技巧 1. **...

    HQL常用函数

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者用类和属性名称来查询数据库,而不需要直接编写SQL语句。这大大简化了数据库操作的过程,并使得代码更加清晰易读。在本文中,我们将详细介绍...

    hibernate所用到HQL经典语句大全

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员可以更加专注于业务逻辑而非底层数据库的细节。 **1.1 基本查询** - *...

    Hadoop-2.8.0-Day08-Hive函数与HQL详解-课件与资料.zip

    Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据集,而Hive则是建立在Hadoop之上的一种数据仓库工具,它提供了一种SQL-like的语言(称为HiveQL或HQL)来方便数据查询和分析。在这个"Day08-Hive函数与HQL...

Global site tag (gtag.js) - Google Analytics