【问题标题】:How to convert mysql query to JPQL query如何将mysql查询转换为JPQL查询
【发布时间】:2021-04-03 11:20:15
【问题描述】:

我有工作的 MySQL 查询:

SELECT date(timestamp), hour(timestamp), sum(numberDet), count(*) 
FROM human_det_counter 
GROUP BY hour( timestamp ) , day( timestamp ) 
ORDER BY date(timestamp)

我想要选择记录,每天按小时分组,然后总结它们的检测次数。

我试过这个查询:

SELECT date(h.timestamp), hour(h.timestamp), sum(h.numberDet), count(h) 
FROM HumanDetCounter h 
GROUP BY hour( h.timestamp ) , day(h.timestamp ) 
ORDER BY date(h.timestamp)

,但它不起作用。我读到 jpa 不支持 Hour() 函数,我应该使用 TO_CHART 函数,但我不知道如何。

【问题讨论】:

  • 您可以将 timestamp 转换为字符串表示,然后使用 SUBSTRING(),剪切日期和小时部分,并使用此表达式进行分组/输出。
  • @Akina 谢谢你的帮助,它的工作。

标签: mysql jpa jpql converters


【解决方案1】:

好吧,我想通了。如果有人需要,我的查询是:

createQuery("SELECT cast(Date(h.timestamp) as string), substring(h.timestamp, 12,2) , sum(h.numberDet), count(h) FROM HumanDetCounter h GROUP by substring(h.timestamp, 12,2), substring(h.timestamp, 9,2) ORDER BY h.timestamp")

这可能不是最好的解决方案,但它的工作:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-17
    • 2017-10-29
    • 2021-10-09
    • 2011-06-12
    • 2013-09-17
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    相关资源
    最近更新 更多