java JPQL计算时间戳之间的差异
我想计算保存在数据库中的TIMESTAMP
与CURRENT_TIMSTAMP
之间的差异,并验证它们之间的天数是否小于给定的数字
TypedQuery<Person> q = entityManager.createQuery("SELECT p FROM Person p WHERE (p.createdOn - CURRENT_TIMESTAMP <= :constant))", Person.class);
数据库会自动设置p.createdOn
constant
是差值必须小于的天数
q.setParameter("constant", 14);
查询正在编译,但没有检索到它需要的内容,我无法获取它们在我的查询中工作的天数
另一种(低效的)方法是获取所有信息并循环使用它们并计算
# 1 楼答案
首先,需要从当前日期中减去
createdOn
,反之亦然(否则,结果总是负值,条件的计算结果总是true
)其次,如果日期操作没有按预期工作,您可以在执行查询之前计算日期限制,并将其作为参数传递: