`
spacefly
  • 浏览: 277978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hql oracle 比较 日期时间

    博客分类:
  • java
阅读更多

oracle 里比较date类型时,好像默认只比较 日期 而不比较 时间,下面写个用hql语句oracle数据库,比较date类型的日期时间的测试类:

 

package test;

import java.util.Date;

/**
 * hql语句 比较 oracle 的日期时间 的写法
 * 
 * @author space
 * @date 2008-12-25 17:23:54
 */
public class OracleHqlDateTimeCompare {
	public static void main(String[] args) {
		System.out.println(getHqlForDateTime(new Date(), "yyyy-MM-dd HH:mm", "yyyy-mm-dd hh24:mi"));
	}

	/**
	 *  生成 “求 用户注册 日期时间 在 指定 日期时间 之前的用户总和” 的 hql 语句
	 * @param d
	 * @param toDateString
	 * @return
	 */
	private static String getHqlForDateTime(Date d, String format, String hqlFormat) {
		return "SELECT COUNT(*) FROM user u WHERE u.cdate <= " + toDate(d, format, hqlFormat);
	}

	/**
	 * 将日期转化成 oracle 的 to_date('xxx','xxx') 格式
	 * 
	 * @param d 日期
	 * @param format 日期格式,例如 "yyyy-MM-dd HH:mm"
	 * @param hqlFormat oracle的日期格式,例如:"yyyy-mm-dd hh24:mi"
	 * @return
	 */
	private static String toDate(Date d, String format, String hqlFormat) {
		StringBuffer bf = new StringBuffer();
		bf.append("to_date('");
		bf.append(dateFormat(d, format));
		bf.append("','");
		bf.append(hqlFormat);
		bf.append("')");
		return bf.toString();
	}

	/**
	 * 将日期转化成指定格式的字符串
	 * 
	 * @param d 日期
	 * @param formatStr 字符串格式
	 * @return
	 */
	private static String dateFormat(Date d, String formatStr) {
		return (new java.text.SimpleDateFormat(formatStr).format(d));
	}

}

 

 和当前日期进行比较的例子:

package space;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
	public static void main(String[] args) {
		/** 
		 * 该 hql 语句从oracle数据库中获得所有 创建在当前日期之前的用户;
		 * 注:oracle 将字符串转化成date类型函数是 to_date('2008-07-01','yyyy-MM-dd HH24:mi:ss')
		 */
		String dateCompareHql = "FROM user u where u.cdate <= to_date('" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())
				+ "','yyyy-MM-dd HH24:mi:ss')";
	}
}

 

 

分享到:
评论

相关推荐

    HQL学习教程Hibernate入門

    `isBefore()`, `isAfter()`, `isEqual()`等方法用于比较日期和时间。 5. **时间区间**: `Duration.between()`计算两个时间点之间的持续时间,`Period.between()`用于计算两个日期之间的年月日差。 **扩展...

    企业人事管理系统Java Swing+Hibernate+Oracal

    1. **员工管理**:添加、修改、删除员工信息,包括姓名、性别、出生日期、入职时间、职位等。 2. **部门管理**:维护企业的组织结构,管理各部门信息及员工分配。 3. **考勤管理**:记录员工的出勤情况,如打卡时间...

    hibernate的知识总结

    - **时间和日期类型**:Hibernate中的 `java.util.Date` 和 `java.sql.Date` 可以映射到MySQL的 `DATE` 和 `TIMESTAMP` 类型,其表示的日期时间格式也有所说明。 ### Hibernate关系配置 Hibernate的配置是通过XML...

    大数据保姆级别教程sql.plsql.bi.ketlle.Linux..hadoop.hive.shell.sqoop.数仓

    函数在SQL中有着广泛的应用,比如聚合函数(SUM, COUNT, AVG, MAX, MIN)用于对一组数据进行统计计算,而其他函数如CONCAT用于字符串连接,DATE函数处理日期和时间等。了解并熟练运用这些函数,能极大地提升数据处理...

    hibernate3的jar包

    2. **commons-lang-2.3.jar**: Apache Commons Lang 是一个提供了一系列实用工具类的库,包括字符串处理、日期时间操作、类型转换等。在Hibernate中,它可能被用到如字符串操作、异常处理等方面,增强了代码的可读性...

    hibernate需要下载的jar包

    这是Apache Commons Lang库的一部分,包含了许多实用的Java工具类,如字符串处理、日期时间操作等。在Hibernate中,这些工具类可能会用于处理各种通用的编程任务,提高代码的效率和可读性。 3. **slf4j-api-1.5.8....

    Hive函数及语法说明.docx

    Hive 提供了一系列内置函数,包括数值函数、字符串函数、日期时间函数等。 **数值函数**: 1. `round(double a)`:四舍五入一个双精度浮点数到最接近的整数。 2. `round(double a, int d)`:将双精度浮点数四舍五入...

    自己总结的ssh相关的知识

    3. **日期时间函数**:SYSDATE 获取当前系统日期,ADD_MONTHS(), NEXT_DAY() 对日期进行计算和操作。 4. **条件判断函数**:IFNULL(), NVL() 用于处理空值。 5. **分组和排序函数**:GROUP BY, HAVING 进行数据分组...

    hibernate jar包

    9. **Type系统**:Hibernate支持多种类型转换,如日期、时间、自定义对象等,与数据库中的类型进行映射。 在开发过程中,如果这个基本的jar包还不够,可能需要添加其他依赖,如数据库驱动JAR(如MySQL、Oracle的...

    computerPDF (3).pdf

    - **bill_time**:记账时间,日期类型,非空。 - **type_id**:账单类型ID,数字类型,长度10,外键关联`bill_type`表主键。 - **price**:账单金额,数字类型,长度10,精度2位小数,非空。 - **explain**:账单...

    hibernate基础jar包

    9. 类型转换:Hibernate提供了一些自定义类型,比如日期时间类型、枚举类型等,使得Java对象可以更好地映射到数据库字段。 10. 其他依赖:为了功能完整,基础包可能还包含其他依赖,如JAXB用于XML序列化,或者DOM4J...

    hibernate3.1

    3. **其他依赖库**:除了核心库外,还有一些辅助库,如用于XML解析的JAXB库,用于日期时间操作的Joda-Time库,以及用于反射操作的asm库等,它们为Hibernate提供了丰富的功能支持。 二、Hibernate 3.1的实体映射 在...

    java知识全集

    - **日期和时间**: Date类、Calendar类以及Java 8的新日期时间API。 - **正则表达式**: 使用Pattern和Matcher类进行文本匹配。 - **I/O流**: 文件读写、输入输出流等。 #### 四、Java数据库连接(JDBC) **4.1 JDBC...

    hibernate-release-5.0.11.Final

    - 新特性支持:增加了对Java 8特性的支持,如日期时间API等。 总结,`hibernate-release-5.0.11.Final`包含的示例可以帮助开发者深入了解Hibernate的使用,从配置到实践,从基本操作到高级特性,逐步掌握这一强大的...

    hibernate_3.3.3_lib.rar

    6. 强化了类型系统:增加了对更多复杂类型的映射支持,如日期、时间、数组等,使得ORM映射更为全面。 7. 更好的XML配置:XML配置文件的改进,使得配置更加清晰,易于理解和维护。 8. 兼容性增强:对多种数据库的...

    hibernate完整JAR包

    8. **类型转换**:hibernate-types-52.jar包含了一些自定义的Hibernate类型,用于处理如JSON、日期时间等复杂类型的数据。 9. **JPA规范**:如javax.persistence-api.jar,提供了JPA的规范接口,使得Hibernate可以...

    马士兵hibernate学习笔记

    - 映射文件中可以通过`&lt;property&gt;`元素配置字段和属性之间的映射关系,包括字段名和属性名的映射、日期和时间类型的精确度等。 #### 五、ID生成策略 - **项目**:`hibernate_0400_ID` - **策略**: - XML配置...

    代码生成工具mygeneration

    这款工具能够显著提高开发效率,减少手动编写重复性代码的时间,使得开发人员可以更专注于业务逻辑和创新功能的设计。 MyGeneration的核心功能在于其模板驱动的代码生成机制。用户可以自定义模板,这些模板基于特定...

    精心整理的ssh2 一些错误问题的记录(推荐)

    确保使用正确的日期格式,或使用更现代的日期时间API,如`java.time`包中的类。 ### 错误七:No row with the given identifier exists 这意味着根据提供的标识符查询数据库时,没有找到任何行。检查SQL查询和...

Global site tag (gtag.js) - Google Analytics