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')";
}
}
分享到:
相关推荐
`isBefore()`, `isAfter()`, `isEqual()`等方法用于比较日期和时间。 5. **时间区间**: `Duration.between()`计算两个时间点之间的持续时间,`Period.between()`用于计算两个日期之间的年月日差。 **扩展...
1. **员工管理**:添加、修改、删除员工信息,包括姓名、性别、出生日期、入职时间、职位等。 2. **部门管理**:维护企业的组织结构,管理各部门信息及员工分配。 3. **考勤管理**:记录员工的出勤情况,如打卡时间...
- **时间和日期类型**:Hibernate中的 `java.util.Date` 和 `java.sql.Date` 可以映射到MySQL的 `DATE` 和 `TIMESTAMP` 类型,其表示的日期时间格式也有所说明。 ### Hibernate关系配置 Hibernate的配置是通过XML...
函数在SQL中有着广泛的应用,比如聚合函数(SUM, COUNT, AVG, MAX, MIN)用于对一组数据进行统计计算,而其他函数如CONCAT用于字符串连接,DATE函数处理日期和时间等。了解并熟练运用这些函数,能极大地提升数据处理...
2. **commons-lang-2.3.jar**: Apache Commons Lang 是一个提供了一系列实用工具类的库,包括字符串处理、日期时间操作、类型转换等。在Hibernate中,它可能被用到如字符串操作、异常处理等方面,增强了代码的可读性...
这是Apache Commons Lang库的一部分,包含了许多实用的Java工具类,如字符串处理、日期时间操作等。在Hibernate中,这些工具类可能会用于处理各种通用的编程任务,提高代码的效率和可读性。 3. **slf4j-api-1.5.8....
Hive 提供了一系列内置函数,包括数值函数、字符串函数、日期时间函数等。 **数值函数**: 1. `round(double a)`:四舍五入一个双精度浮点数到最接近的整数。 2. `round(double a, int d)`:将双精度浮点数四舍五入...
3. **日期时间函数**:SYSDATE 获取当前系统日期,ADD_MONTHS(), NEXT_DAY() 对日期进行计算和操作。 4. **条件判断函数**:IFNULL(), NVL() 用于处理空值。 5. **分组和排序函数**:GROUP BY, HAVING 进行数据分组...
9. **Type系统**:Hibernate支持多种类型转换,如日期、时间、自定义对象等,与数据库中的类型进行映射。 在开发过程中,如果这个基本的jar包还不够,可能需要添加其他依赖,如数据库驱动JAR(如MySQL、Oracle的...
- **bill_time**:记账时间,日期类型,非空。 - **type_id**:账单类型ID,数字类型,长度10,外键关联`bill_type`表主键。 - **price**:账单金额,数字类型,长度10,精度2位小数,非空。 - **explain**:账单...
9. 类型转换:Hibernate提供了一些自定义类型,比如日期时间类型、枚举类型等,使得Java对象可以更好地映射到数据库字段。 10. 其他依赖:为了功能完整,基础包可能还包含其他依赖,如JAXB用于XML序列化,或者DOM4J...
3. **其他依赖库**:除了核心库外,还有一些辅助库,如用于XML解析的JAXB库,用于日期时间操作的Joda-Time库,以及用于反射操作的asm库等,它们为Hibernate提供了丰富的功能支持。 二、Hibernate 3.1的实体映射 在...
- **日期和时间**: Date类、Calendar类以及Java 8的新日期时间API。 - **正则表达式**: 使用Pattern和Matcher类进行文本匹配。 - **I/O流**: 文件读写、输入输出流等。 #### 四、Java数据库连接(JDBC) **4.1 JDBC...
- 新特性支持:增加了对Java 8特性的支持,如日期时间API等。 总结,`hibernate-release-5.0.11.Final`包含的示例可以帮助开发者深入了解Hibernate的使用,从配置到实践,从基本操作到高级特性,逐步掌握这一强大的...
6. 强化了类型系统:增加了对更多复杂类型的映射支持,如日期、时间、数组等,使得ORM映射更为全面。 7. 更好的XML配置:XML配置文件的改进,使得配置更加清晰,易于理解和维护。 8. 兼容性增强:对多种数据库的...
8. **类型转换**:hibernate-types-52.jar包含了一些自定义的Hibernate类型,用于处理如JSON、日期时间等复杂类型的数据。 9. **JPA规范**:如javax.persistence-api.jar,提供了JPA的规范接口,使得Hibernate可以...
- 映射文件中可以通过`<property>`元素配置字段和属性之间的映射关系,包括字段名和属性名的映射、日期和时间类型的精确度等。 #### 五、ID生成策略 - **项目**:`hibernate_0400_ID` - **策略**: - XML配置...
这款工具能够显著提高开发效率,减少手动编写重复性代码的时间,使得开发人员可以更专注于业务逻辑和创新功能的设计。 MyGeneration的核心功能在于其模板驱动的代码生成机制。用户可以自定义模板,这些模板基于特定...
确保使用正确的日期格式,或使用更现代的日期时间API,如`java.time`包中的类。 ### 错误七:No row with the given identifier exists 这意味着根据提供的标识符查询数据库时,没有找到任何行。检查SQL查询和...