【问题标题】:How to get day of week from date?如何从日期获取星期几?
【发布时间】:2018-10-15 19:01:57
【问题描述】:

对于我的一次抓取,我需要检查 DOW(date) IN :listOfDow:

@Query("SELECT event FROM Event event WHERE DOW(event.date) IN :dows")
List<Events> getEvents(@Param("dows") Collection<DayOfWeek> dows);

显然,DOW() 不存在。那么,有没有办法在 HQL 中做到这一点?

【问题讨论】:

    标签: spring hibernate hql


    【解决方案1】:

    您可以尝试使用像 WHERE function('dayofweek', event.date) IN :dows 这样的 JPQL 函数调用,但这是非常特定于数据库的。

    dayofweek 是 MySQL 特定的函数,返回 1-7,其中 1 是星期日,7 是星期六,weekday 返回 0-6,0 是星期一。

    如果您使用 Postgres,您可以使用 function('date_part', 'dow', event.date) 来获取它,星期日从 0 开始。

    如果您使用的是其他数据库,则必须检查其文档以找到也由所选 Hibernate Dialect 注册的适当函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多