hibernate查询的时间段选择查询的hql语句总结

本文详细阐述了在数据库查询中,如何将字符串类型的报警时间转换为时间类型,并运用到SQL和HQL语句中,以实现指定时间段的数据筛选。通过实例演示,展示了在MySQL环境下使用`date_format()`函数的正确应用,以及在HQL中通过字符串拼接实现类似功能的方法,最终确保查询语句的正确执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在进行hql语句查询的时候,由于是面向对象的查询语句,所以与sql+jdbc有所不同。

在数据库中,我的报警字段alarmtime是字符串的类型,直接用字符串类型来查询一段时间内的数据显然不行,所以我一开始想的就是将

字符串转换为时间类型。在sql中:
mysql>  select alarm_grade , alarm_time from tb_sys_alarm_info where alarm_grade
=1 and date_format(alarm_time,'%Y-%m-%d %h:%i:%s') <now();

可以得到结果。(我用的是mysql)

但用hql查询的时候却报错了。说不能解析我的sql语句,后来才明白,date_format();函数是将一个字符串转换为时间类型,所以第一个参数必须加上‘’。

查询的条件变为:"select * from Sdingalrm where alarmGrade=3 and date_format(alarmTime,'%Y-%m-%d %h:%i:%s') between date_format('"+time1+"','%Y-%m-%d %h:%i:%s') and date_format('"+time2+"','%Y-%m-%d %h:%i:%s')",其中time1和time2是页面选择的时间。

如此,查询成功!!

附:个人qq空间:http://user.qzone.qq.com/449125551/profile/sync#!app=2&via=QZ.HashRefresh&pos=1384014434

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值