Hibernate HQL查询中对日期的查询操作总结
来源:互联网 发布:淘宝天天特价 编辑:程序博客网 时间:2024/05/16 04:47
数据库表部分数据:
SQL> select * from t_class;
CLASS_ID CLASS_NAME CLASS_CREATETIME
----------- ------------------------------------------------------------ --------------------------------------------------------------------------------
1 班级1 22-1月 -08 03.03.52.717000 下午
9 班级2 20-1月 -08 05.04.30.577000 上午
18 班级3 15-3月 -08 11.08.03.204000 上午
28 班级4 23-3月 -08 06.05.03.040000 下午
39 班级5 24-4月 -08 01.22.50.090000 下午
关键:注意类型匹配,看比较的是日期类型还是字符串类型。
//查询2008-1月-1日到2008-2月-1日建立的班级
String hql = "select c.id, c.name from MyClass c where c.createTime between ? and ?";//这里的问号要传入的是日期对象
//在hql中可以使用数据库的函数,如:Mysql数据库中的date_format
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List list =session.createQuery(hql)
.setParameter(0,format.parse("2008-01-01 00:00:00"))//此时应传入Date类型
.setParameter(1,format.parse("2008-01-31 23:59:59"))
.list();
查询2008-1月建立的班级:
可以利用数据库中的函数,但要注意不同数据库的函数可能不同:例如Mysql中有date_format函数,而oracle中则是用to_char将日期转为指定形式的字符串
String hql = "select c.id, c.name from MyClass c where to_char(c.createTime,'yyyy-MM')=?";
//如果是mysql数据库,where条件应该使用date_format函数写成date_format(c.createTime,'%y-%M')=?
List list = session.createQuery(hql).setParameter(0,"2008-01").list();//此时应传入字符串类型,应为to_char已将日期转为指定形式的字符串
也可以使用oracle数据的函数to_date,将传入的字符串转化为指定格式的日期对象
String hql = "select id,name from MyClass c where c.createTime between to_date(?,'yyyy-MM-dd HH24-mi-ss') and to_date(?,'yyyy-MM-dd HH24-mi-ss')";
List list = session.createQuery(hql)
.setParameter(0,"2008-01-01 00:00:00")
.setParameter(1,"2008-01-31 23:59:59")
.list();
注意oracle中使用to_date时有可能出现如下报错:
(1)ERROR JDBCExceptionReporter:101 - ORA-01810:格式代码出现两次
这是由于输入日期模式时输入的是:yyyy-MM-dd HH24-mm-ss。oracle认为出现了两次mm,将分钟的mm改为mi。
(2)ERROR JDBCExceptionReporter:101 - ORA-01849:小时值必须介于 1和 12 之间
如果要使用24小时制要写成:'yyyy-MM-dd HH24-mi-ss',而不能直接写yyyy-MM-dd HH-mi-ss'
- Hibernate HQL查询中对日期的查询操作总结
- Hibernate HQL查询中对日期的查询操作总结
- 应用hibernate中的hql语句对日期的操作总结
- hql中对日期的操作
- hibernate 查询时 对日期的比较
- Hibernate HQL查询 总结
- Hibernate HQL查询 总结
- Hibernate HQL查询总结
- SOQL数据查询时对日期的相关处理操作。
- morphia操作mongodb对日期范围查询
- Hibernate中使用HQL进行查询操作
- Hibernate中使用HQL进行查询操作
- hibernate中hql查询
- hibernate中hql查询
- hibernate中hql查询
- SQL中对日期进行模糊查询的方法
- sql 对日期查询
- hibernate 的hql查询语句总结
- JAVA集合总结
- hive 元数据
- PIC 学习---软件延时的具体时间测试方法
- (step4.1.4)hdu 2178(猜数字——逆向应用二分法)
- I/gps_gsd4e( 100): in RMC, fixStatus=V I/gps_gsd4e( 100): gps fd event end I/gps_gsd4e( 100): gps
- Hibernate HQL查询中对日期的查询操作总结
- Android开发Camera类照相机,前后摄像头切换,分辨率读取和调节
- Freemarker 使用
- 一个程序员的工作总结
- 【Jsoup】“广西师范大学”校园快讯和公告信息小爬虫
- xdebug显示不全
- epoll_create, epoll_ctl和epoll_wait 实例讲解,总结得不错
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常总结
- UPNP通俗解释