在 localdate 列中添加天数
Add a number of day in a localdate column
我用spring数据jpa
我搜索做类似的事情
@Query("update FROM sample s set s.availableForTest=true WHERE (s.buildDate + s.delay) <= date and availableForTest=false")
public void updateToAvailabilityForTest(@Param("date") LocalDate date);
延迟是要添加的天数
似乎无法使用 JPQL
不,这在 JPQL 中是不可能的。即使在普通 SQL 中,这至少在 SQL 服务器和 MySQL 中是可能的。有专门的功能:
SQL 服务器 - DATEADD
MySQL - DATE_ADD
我认为这在 Oracle 中是可能的。
所以最简单的方法是使用此日期添加函数进行本机查询。
如果您想留在 JPQL 世界并获得 JPA 2.1,那么他们在 JPQL 中引入了 FUNCTION
函数,您可以使用它来调用数据库函数。
注意:
FUNCTION
is database specific – it does not translate the function
call in any way to support different databases as other JPQL functions
do.
在你的情况下,使用 SQL 服务器看起来像:
update FROM sample s set s.availableForTest=true WHERE FUNCTION('DATEADD', 'day' , s.delay, s.buildDate) <= :date and availableForTest=false
虽然我没测试过id
我用spring数据jpa
我搜索做类似的事情
@Query("update FROM sample s set s.availableForTest=true WHERE (s.buildDate + s.delay) <= date and availableForTest=false")
public void updateToAvailabilityForTest(@Param("date") LocalDate date);
延迟是要添加的天数
似乎无法使用 JPQL
不,这在 JPQL 中是不可能的。即使在普通 SQL 中,这至少在 SQL 服务器和 MySQL 中是可能的。有专门的功能:
SQL 服务器 - DATEADD
MySQL - DATE_ADD
我认为这在 Oracle 中是可能的。
所以最简单的方法是使用此日期添加函数进行本机查询。
如果您想留在 JPQL 世界并获得 JPA 2.1,那么他们在 JPQL 中引入了 FUNCTION
函数,您可以使用它来调用数据库函数。
注意:
FUNCTION
is database specific – it does not translate the function call in any way to support different databases as other JPQL functions do.
在你的情况下,使用 SQL 服务器看起来像:
update FROM sample s set s.availableForTest=true WHERE FUNCTION('DATEADD', 'day' , s.delay, s.buildDate) <= :date and availableForTest=false
虽然我没测试过id