【问题标题】:Sum Time field values in JPAJPA 中的 Sum Time 字段值
【发布时间】:2011-01-04 14:55:57
【问题描述】:

我在 MySql 数据库上执行的 JPA (Eclipselink v.2.1.2) 中的聚合 SUM 函数有问题。我需要对“TIME”类型的字段中的值求和。但是,执行的查询返回错误的结果。 例如,我有两个值('04:15:00' 和 '05:50:00'),结果是 96500。 查询(JPQL)是:

SELECT SUM(w.timeSpent) FROM WorkingHours w

在 JPA 中求和时间值的正确方法是什么?

提前致谢。

【问题讨论】:

    标签: mysql jpa aggregate-functions eclipselink


    【解决方案1】:

    在 EclipseLink (>=2.1) 中你可以试试,

    SELECT FUNC('SEC_TO_TIME', SUM(FUNC('TIME_TO_SEC', w.timeSpent))) FROM WorkingHours w
    

    【讨论】:

      【解决方案2】:

      结果是时间还是整数?

      生成了什么 SQL,MySQL 会为此返回什么?可能正是 MySQL 返回的内容。尝试使用相同 SQL 的本机 SQL 查询。

      【讨论】:

      • 嗯,结果是 Double。当我在 MySQL 控制台中运行 SQL 时,它应该给我 sum (SELECT timeSpent FROM WorkingHours) 我也得到了不是 TIME 格式的结果。我想在 MySQL 中还有其他计算 sum 的方法,但我不确定 JPQL 是否可以执行相同的操作。
      • 在 JPQL 中似乎无法做到这一点。本机查询应如下所示: SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(w.TimeSpent))) FROM WorkingHours w
      猜你喜欢
      • 2015-07-06
      • 2023-01-21
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多