【问题标题】:How to obtain CURDATE() / NOW() on a JPA named query?如何在 JPA 命名查询中获取 CURDATE() / NOW()?
【发布时间】:2010-12-02 19:00:33
【问题描述】:

我想从日期 = TODAY 的表中进行选择,在 mysql 上将是 where date > CURDATE(),我如何在 JPA 命名查询上执行此操作?

【问题讨论】:

    标签: java date jpa


    【解决方案1】:

    这取决于您的 JPA 提供商。比如Hibernate就支持current_date函数:

    from MyEntity where myDateProperty > current_date
    

    【讨论】:

      【解决方案2】:

      来自spec

      4.6.16.3 日期时间函数

      functions_returning_datetime:=
      CURRENT_DATE |
      CURRENT_TIME |
      CURRENT_TIMESTAMP
      

      日期时间函数返回 当前日期、时间的值和 数据库服务器上的时间戳。

      【讨论】:

      • 关于 CURRENT_DATE 是一个标准的 JPA 函数并且它应该在所有 JPA 提供程序和 RDBMS 中以相同的方式工作这一事实,它会在使用 SQL Server 的 Hibernate 中导致错误,应该用作 CURRENT_DATE()反而。所以@chssply76 的回答也是正确的:“这取决于你的 JPA 提供商。”
      • @naXa - CURRENT_DATE - 1 不起作用,昨天也不起作用?如何做到这一点?
      • @JeffCook:如果你使用 Hibernate,你可以使用额外的 HQL 函数:extract( DAY from current_date )
      猜你喜欢
      • 1970-01-01
      • 2011-08-07
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多