【问题标题】:JPA add seconds to date in queryJPA 在查询中添加秒到日期
【发布时间】:2011-12-18 18:36:59
【问题描述】:

我有一个名为“任务”的表,其中有两列:

  • Date_due:TIMESTAMP 日期
  • Wait_in_seconds:秒数 (INT)

我想将 Wait_in_seconds 值添加到查询中的日期,并将其与当前日期进行比较。

下面的查询没有正确的语法,但它表明我想要什么:

SELECT t
FROM Task t
WHERE (Date_due + Wait_in_seconds) < CURRENT_TIMESTAMP

编辑: KIMI 解释说 JPQL 无法做到这一点。

编辑 2: 这个原生 MySQL 查询可以解决问题:

SELECT *, DATE_ADD(task.date_due, INTERVAL task.wait_seconds SECOND) AS dueDate
FROM task                   
HAVING dueDate < NOW()
ORDER BY dueDate ASC

【问题讨论】:

    标签: mysql sql date add jpql


    【解决方案1】:

    标准 JPQL 不支持对日期进行此类操作。您将不得不使用本机查询或在 Java 端进行计算,例如使用 JodaTime,它是 JSR-310 的参考实现。

    【讨论】:

    • 谢谢。我更喜欢原生 sql 查询而不是 java 代码中的计算。我会更新旧约。
    • "如何使用原生 SQL 查询完成?"首先,它取决于数据库。您使用的是哪个数据库?
    猜你喜欢
    • 2020-03-05
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2014-05-24
    • 2011-05-31
    • 2015-10-27
    • 2012-03-29
    相关资源
    最近更新 更多