【问题标题】:Spring Data JPA query records by hour minute only without secsSpring Data JPA 仅按小时分钟查询记录,无需秒
【发布时间】:2020-10-17 20:55:56
【问题描述】:

我们可以在 mysql 中只按小时分钟查询记录,而不需要秒,如下 where 条件:

DATE_FORMAT(ecs.scheduler_date, '%Y-%m-%d %H:%i') = DATE_FORMAT('2020-10-17 16:12:15', '%Y-%m-%d %H:%i')

但是如何在 Spring Data JPA 中编写呢?

【问题讨论】:

  • 您可以在您的自定义休眠方言中声明DATE_FORMAT 函数,然后在您的 jpql/hql 中使用它。参见例如this

标签: spring-boot hibernate jpa spring-data-jpa


【解决方案1】:

在存储库中以下面指定的方式将其作为自定义查询传递

@Query(value="SELECT DATE_FORMAT(datetime,'%y-%m-%d %H:%i') as Day
FROM table1 GROUP BY DATE_FORMAT(datetime,'%y-%m-%d %H:%i')",nativeQuery = true)
List<Entity_class_name> methodname();

如果需要在同一个查询中传递特定值,那么您可以像 ?1.. 一样在查询中替换它们而不是变量,并且在 methodname() 内部将值作为参数传递。下面的例子

@Query(value="select * from ?1 where name=?2",nativeQuery=true)
List method(tablename, name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多