// 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里面也回出现上面的问题,边缘值查不到
分享到:
相关推荐
HQL模糊查询是开发者在进行数据检索时常用的一种功能,它允许我们根据部分关键词或者通配符来查找匹配的数据。下面我们将深入探讨Hibernate的HQL模糊查询及其应用。 一、HQL概述 HQL是一种面向对象的查询语言,它的...
### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...
在Hibernate中,HQL(Hibernate Query Language)是其内置的一种面向对象的查询语言,它是SQL的面向对象版本,用于检索和操作持久化对象。HQL查询的使用极大地提高了开发效率,因为它将数据操作与具体的数据库结构...
2. **时间范围查询**: ```csharp iReceivingCriteria.Add(Restrictions.Between("BusinessDate", criteria.BeginDate, criteria.EndDate)); ``` 3. **多条件或查询**: ```csharp list = DeliveryDao.Current...
在`findPersonByHappenDate`中,还涉及到日期的解析和设置,这是在处理时间相关的查询时常见的做法。 总结来说,HQL是Hibernate中进行对象查询的关键部分,它简化了与数据库的交互,让开发者可以更加专注于业务逻辑...
2. **函数与操作符**:HQL提供了丰富的函数,如聚合函数(sum、avg等)、日期时间处理函数,以及比较操作符(=、<、>等)。 3. **动态查询**:通过使用Criteria API或者Querydsl等工具,可以构建动态HQL,实现灵活...
相反,离线查询则是在程序启动或者特定时间点执行,将结果存储到内存或者其他临时存储介质中,后续操作基于这些预计算的结果。离线查询可以提高性能,因为它减少了数据库的交互,但可能会因为数据不实时而牺牲一部分...
HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的SQL-like语言,它允许开发者以面向对象的方式来查询数据库。HQL语句的语法结构与SQL相似,但更注重对象和类的概念。以下将详细介绍...
HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,与SQL类似,但更加面向对象,使得开发者在处理数据时更加便捷。 在学习HQL之前,首先需要理解Hibernate的核心概念。Hibernate通过映射...
Hibernate查询语言(HQL)是一种面向对象的查询语言,它允许开发者以面向对象的方式来操作数据库中的数据。HQL与SQL有些相似,但是它是基于类和属性而非数据库表和列的。HQL是Hibernate框架的核心组件之一,它支持...
在本文中,我们将探讨基于Hibernate的查询实践,包括HQL(Hibernate Query Language)和Criteria API的使用。我们将通过两个经典的练习题来深入理解这两个查询方式,并讨论它们在处理不同查询需求时的特点。 ### ...
6. **函数与操作符**:HQL支持多种函数,如聚合函数(`count`、`sum`、`avg`、`max`、`min`)和日期时间操作。同时,它也支持比较操作符(`=`, `, `>`, `, `>=`, `!=`),逻辑操作符(`and`, `or`, `not`),以及...
HQL还提供了更高级的功能,如命名参数、集合操作(IN, NOT IN)、日期和时间函数、空值处理等。这些特性使得开发者能够在不直接接触底层SQL的情况下,高效地进行数据操作。 在实际应用中,HQL通过Hibernate的...
### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。
通过这样的监控,我们可以获取到执行时间、次数、参数等信息,有助于找出慢查询,定位性能瓶颈,还可以发现潜在的SQL错误。同时,对于复杂的应用场景,例如分页、联接、子查询等,理解HQL到SQL的转换过程有助于我们...
从给定的文件信息来看,主要内容集中在HQL(Hibernate Query Language)的高级应用,包括HQL的优化、数据检索策略,以及本地SQL查询等。以下是对这些知识点的详细阐述: ### HQL高级应用 #### HQL优化技巧 1. **...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者用类和属性名称来查询数据库,而不需要直接编写SQL语句。这大大简化了数据库操作的过程,并使得代码更加清晰易读。在本文中,我们将详细介绍...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员可以更加专注于业务逻辑而非底层数据库的细节。 **1.1 基本查询** - *...
Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据集,而Hive则是建立在Hadoop之上的一种数据仓库工具,它提供了一种SQL-like的语言(称为HiveQL或HQL)来方便数据查询和分析。在这个"Day08-Hive函数与HQL...