在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hibernate的面向对象的语句 sessionFactory.getCurrentSession().createQuery(sql);

我们应改成 sessionFactory.getCurrentSession().createSQL(sql);就可以了。

但有时项目要求必须要使用hql,比如说将相应的接口都封装成了jar包,本人就遇到了这样的情况,在用hql语句比较当前时间时,一开始使用sql语句进行拼接,结果一直报错。在这里给大家展示一下Hql常用的函数吧:

函数名称

说明

类型

支持

使用方法

备注

ABS(n)

取绝对值

数学函数

JPAQL HQL

ABS(column_name[数字类型对象属性])

SQRT(n)

取平方根

数学函数

JPAQL HQL

SQRT(column_name[数字类型对象属性])

MOD(x,y)

取余数

数学函数

JPAQL HQL

MOD([对象属性(数字)或值],[对象属性(数字)或值])

数字必须是整型,返回参数1/参数2得的余数

SIZE(c)

方法集合内对象数量

集合函数

JPAQL HQL

MINELEMENT(c)

返回集合中最小元素

集合函数

HQL

MAXELEMENT(c)

返回集合中最大元素

集合函数

HQL

MININDEX(c)

返回索引集合最小索引

集合函数

HQL

MAXINDEX(c)

返回索引集合最大索引

集合函数

HQL

MAX(n)

返回最大值

集合函数

JPQHQL HQL

MIN(n)

返回最小值

集合函数

JPQHQL HQL

COUNT(n)

返回计数

集合函数

JPQHQL HQL

CONCAT(s1,s2)

连接连个字符串

字符串函数

JPQHQL HQL

CONCAT([对象属性],[对象属性])

SUBSTRING(s,offset,length)

返回子串

字符串函数

JPQHQL HQL

SUBSTRING([要截取的字符串属性字段],开始位置,截取长度)

TRIM([[BOTH/LEADING/TRAILING]] char FROM s)

默认去掉字符串两面的空格

字符串函数

JPQHQL HQL

TRIM([字符串对象属性列])

将字段两端的空格去掉

LOWER(s)

小写

字符串函数

JPQHQL HQL

LOWER([字符串对象属性列])

将该列结果含有的字母全部大写

UPPER(s)

大写

字符串函数

JPQHQL HQL

UPPER([字符串对象属性列])

将该列结果含有的字母全部大写

LENGTH(s)

返回字符串长度

字符串函数

JPQHQL HQL

LENGTH(字段名)

返回字段内容的长度,包括数字。null值返回null.

CURRENT_DATE()

返回数据库当前日期

时间函数

JPAQL HQL

CURRENT_DATE()

返回数据库当前日期

CURRENT_TIME()

时间

时间函数

JPAQL HQL

CURRENT_TIME()

返回数据库当前时间

SECOND(d)

从日期中提取具体秒

时间函数

HQL

SECOND(时间字段)

空的时候返回null

MINUTE(d)

从日期中提取具体分

时间函数

HQL

MINUTE(时间字段)

空的时候返回null

HOUR(d)

从日期中提取具体小时

时间函数

HQL

HOUR(时间字段

空的时候返回null

DAY(d)

从日期中提取具体天

时间函数

HQL

DAY(时间字段)

空的时候返回null

MONTH(d)

从日期中提取具体月

时间函数

HQL

MONTH(时间字段)

空的时候返回null

YEAR(d)

从日期中提取具体年

时间函数

HQL

YEAR(时间字段)

空的时候返回null

eg:数据库某个时间与当前时间进行比较

1. String hql = "FROM " + User.class.getName() + " WHERE (TO_DAYS(registerDate) >= TO_DAYS(current_timestamp()) AND TO_DAYS(registerDate)

2.   String hql = "FROM " + User.class.getName() + " WHERE UNIX_TIMESTAMP(insertTime) > UNIX_TIMESTAMP(current_timestamp()) - 24 * 60 * 60 ";

注意:hql语句与sql语句都不推荐使用current_date() - 1或者currentdate()+1这种写法,通常情况下是没有问题,但遇到特殊情况就会产生异常。例如当前日期为11月1号,则current_date() - 1会生成日期1970-01-01,然后条件查询的时候就查询不出来任何东西。

OpenCV图像处理中常用函数汇总(1)

//俗话说:好记性不如烂笔头 //用到opencv 中的函数时往往会一时记不起这个函数的具体参数怎么设置,故在此将常用函数做一汇总: Mat srcImage = imread("C:/Us ...

Hibernate中HQL的日期差值计算,可计算相差多少秒

最近有个业务需求就是计算订单创建时间离现在超过 4 小时的订单都查找出来! 那么就需要用到日期函数了. 网上找了一下总共的日期函数有一下几个: CURRENT_DATE() 返回数据库当前日期 时间函 ...

thinkphp中的内置操作数据库与mysql中的函数汇总

8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

javascript中常用函数汇总

js中函数很多,在实际项目开发中,函数的应用可以很大程度上简化我们的代码,所以在此记下开发中js中常用的函数,增强记忆. 1.isNaN(X):函数用于检查其参数是否是非数字值. 如果 x 是特殊的非 ...

实现系统函数time,获取当前时间与UTC的间隔

因种种原因,最近很少上cnblogs了.刚写了一个实现time的函数,可以通过该函数获取当前时间与1970年1月1日 0时0分0秒的差值,精确到秒,可以用在某些没有时候使用time不正确而不得不调用硬 ...

hibernate 中HQL查询

由于比较简单,在此处只写一些HQL语言. 表关系,多对一. CREATE TABLE `user` ( `id` ) NOT NULL AUTO_INCREMENT, `uname` varchar( ...

hibernate中HQL练习时候一个小小的错误导致语法异常

package cn.db.po.test; import java.util.List; import cn.db.po.User; import cn.db.po.biz.UserBiz; pub ...

hibernate中HQL多对多的查询

现有三张表 TLXPURCHASE.采购事项审批表,TLXPURCHASEACTIVITY.采购招标活动对应表,TLXACTIVITY.招标活动表,采购事项审批表和采购活动表是多对多关系.java中定 ...

Hibernate 中Hql 查询中间表的用法

案例简述: 项目中存在User 用户表 和 Role 角色表 它们之间是多对多的关系 在User类定义中 使用hibernate注解 //角色列表 @ManyToMany(targetEntity = ...

随机推荐

VM出现该虚拟机正在使用中的提示,让获取所有权限解决办法

今天打开虚拟机正要学习,结果说是虚拟机似乎正在使用中,让我重新获取权限.解决办法:打开提示的配置文件的位置,将一个以.lck结尾的文件夹删除或者保存为另外的文件名称,再打开虚拟机就OK了.

shell学习之路:流程控制(if)

1.单分支if条件语句 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意事项: 1.if语句使用fi结尾,和一般语言使用大括号结尾不同 2.[ ...

linux下删除文件名乱码文件

linux下通过rm命令来删除文件,但是如果要删除文件名乱码的文件,就不能直接使用rm命令了,因为压根就无法输出文件名来.不过借助find命令可以实现对其删除.在linux下对于每个文件都一个对应的不 ...

AIR 14 Beta - Missing builtin type Object 解决方法

使用AIR SDK14 时候出现 Missing builtin type Object 的问题 参考 https://forums.adobe.com/thread/1483159 下载最新的Fla ...

NLog在asp.net中的使用

一.关于安装 1.可以直接通过vs自带的Nuget包管理器来搜索下载,直接搜索"NLog": 注意,除了要安装第一个之外,一定要安装"NLog.Config", ...

安装wamp提示You dont't have permission to accesson on this server的解决方案

展示一下安装好的效果图 首先找到安装目录下的路径[wamp\bin\apache\Apache2.2.21\conf\] § 找到httpd.conf,用记事本打开httpd.conf,然后将 1. ...

解决IE6-IE8 Js代码不执行问题

一种可能的原因:form标签不完整. 使用在线工具,测试html代码标签的完整性.

llvm -O 经历过那些pass

https://stackoverflow.com/questions/15548023/clang-optimization-levels

显示iOS所有系统字体

显示iOS所有系统字体 源码地址: https://github.com/YouXianMing/UI-Component-Collection 效果图: 便于你开发中寻找适合自己的字体, demo中 ...

hibernate mysql 时间比较_Hibernate中HQL函数汇总及获取当前时间进行比较举例相关推荐

  1. Hibernate中HQL函数汇总及其说明

    2019独角兽企业重金招聘Python工程师标准>>> Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lang ...

  2. Java 记录(3) java 时间格式化:SimpleDateFormat 函数 :java 获取当前时间

    Java 记录(3) java 时间格式化:SimpleDateFormat 函数 :java 获取当前时间 初 代码: 运行结果 初 希望能写一些简单的教程和案例分享给需要的人 代码: packag ...

  3. C语言中time函数和localtime获取系统时间和日期

    C语言中time函数和localtime获取系统时间和日期 可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算. ...

  4. repeat mysql翻译_MySQL数据库中系统函数repeat有哪些功能呢?

    摘要: 下文讲述MySQL数据库中系统函数repeat的功能说明,如下所示: 系统函数repeat的功能: repeat函数的功能: 重复前面字符串指定次数 repeat语法: repeat(str, ...

  5. mysql里的die_mysql中die函数的问题

    题目: mysql中die函数的问题 $con = mysql_pconnect("59.151.12.43","kxt_db_users","use ...

  6. mysql中explain的使用,mysql使用方法_mysql中explain函数的使用方法

    摘要 腾兴网为您分享:mysql中explain函数的使用方法,英语字典,小熊到家,腾讯新闻,刷机大师等软件知识,以及adobeflashplayerformac,灯光工厂,全民小视频,网盘解析,37 ...

  7. mysql raiserror_sql server数据库中raiserror函数用法的详细介绍

    sql server数据库中raiserror函数的用法 server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误 ...

  8. linux如何更改服务器时间格式,Linux中date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]...[+格式] 或:date [-u|--utc|--universal] ...

  9. hibernate mysql 关联查询_hibernate 查询缓存,以及在关联表查询缓存下使用HQL,而不是sql去查询...

    什么是查询缓存? 也就是如果开启了查询缓存, 在 没有使用二级缓存的情况下,会 缓存第一次查询出来的数据的id. 第二次查询的时候, 如果查询的参数和查询语句没有变化,那么就会使用 第一次查询的出来的 ...

最新文章

  1. 销售部门如何运用OKR管理法?看三大层面最新模板
  2. STM32外设有哪些?外设在总线上是怎么挂载的?
  3. 点云网络的论文理解(一)-点云网络的提出 PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation
  4. 肯德基收银系统模式_肯德基的完整形式是什么?
  5. ionic4 富文本
  6. 20220212:力扣第277场周赛(下)
  7. android中的横幅通知
  8. OpenGL学习笔记_图形渲染管线及典型渲染流程(绘制一个三角形)
  9. 数模美赛备赛-MATLAB基操勿六
  10. 分享5个国外较好的图片网站
  11. Maven项目管理工具
  12. 让 CAS 5.1.8 支持http,解决未认证授权服务错误提示问题
  13. 想想也有五年多了(胡紫薇博客)
  14. 黑马程序员---其他对象
  15. 第一章 几何光学的基本定律
  16. python有四个数字_Python生成0-9任意4位数字组合的方法
  17. 基于 SpringBoot + Vue 实现的物联网/智能家居系统
  18. Delphi 2007 创建TIdHttp对象连接池
  19. 台式电脑怎么组装步骤_网上千万别买整机,教你如何自己组装台式电脑!
  20. 仿牛客论坛项目之修改用户头像

热门文章

  1. IDEA 打包docker镜像(以打包Jdk8为例)
  2. HTML制作法国国旗
  3. java+s2sh+mysql水费系统
  4. 水到渠成建设路肩等设施路缘石成型机来出力
  5. 哪些关于硬件的事之串行与并行到底是hang还是xing
  6. STM32跑MicroPython的链接脚本分析
  7. kali 设置中文并安装输入法
  8. 内核二分缺陷_缺陷跟踪
  9. 1.8w 字 | 初中级前端 JavaScript 自测清单 - 2
  10. js本地预览图片和转base64