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语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL...
hql模糊查询hql模糊查询hql模糊查询hql模糊查询
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
HQL语句 HQL语句 HQL语句 HQL语句 HQL语句
hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全
HQL语句大全HQL语句大全HQL语句大全HQL语句大全HQL语句大全
Hql PPt Hql PPt
Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询...
不喜欢使用myEclipse的...最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。 由于MyEclipse是收费的,速度不是很理想。所以在网上找到了一个elipse插件 英文图文教程 ...
hql语句常规 方法 使用 了解hql语句
HQL Hibernate入門 java 时间日期的方法大全讲解 扩展hibernate的主键生成策略
NHibernate HQL 条件查询
HQL查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式.这是本人对HQL知识点做的一个总结性的练习
hibernate查询之HQLhibernate查询之HQLhibernate查询之HQL
之前写好SQL,再到代码里面来写,语句复杂的看的时不时细节会忘记,用sql转换hql工具,直接贴近了就可以了;
NULL 博文链接:https://jadeluo.iteye.com/blog/1213549
精通HQL.doc精通HQL.doc精通HQL.doc精通HQL.doc精通HQL.doc
HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征。HQL查询依赖于Query类,每个Query实例对应一个查询对象,使用HQL查询按 如下步骤进行: (1)获取Hibernate Session对象; (2)编写HQL语句; (3)以HQL...
HQL语言大全HQL语言大全HQL语言大全
HQL查询语言基础,HQL查询语言基础,HQL查询语言基础