在SpringMVC+SpringDataJPA结合Hibernate开发中如何做日期模糊查询?
在CriteriaBuilder中有一个function函数,可以通过此方法对日期数据转换成字符串数据然后再进行模糊查询
例如:
//我的开发语言Kotlin,相信你可以很容易的把下面两行代码转化为Java
val timeStr = criteriaBuilder.function("str", String::class.java, root.get<Date>("time"))
criteriaBuilder.like(timeString, "%$search%")
通过开启show-sql查看SQL语句得到如下语句:
select
//省略N行内容
from
save_file savefile0_
where
//省略一些内容
or cast(savefile0_.time as char) like ? //这行是生成的转换语句
order by
savefile0_.id asc limit ?
由百度得知cast的信息如下:
CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:
CHAR[(N)] 字符型
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型