在 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