与postgres和jooq按时间分组

时间:2019-02-15 13:38:50

标签: java sql jooq

如何在jooq中按分钟,小时,天或周分组。我在postgres中发现了 我们可以使用date_trunc('minute', created_at)函数。

我为此使用的简化SQL是:

select date_trunc('day', created_at) as date,
       sum(time_spent) as time_spent,
from progress 
group by date

如何用jooq实现同等效果?

1 个答案:

答案 0 :(得分:1)

对于大多数日期部分,您可以使用jOOQ中的内置功能,例如

jOOQ 3.12将通过#2132添加更多支持,以提取大多数RDBMS支持的非标准日期部分。这将包括:

  • DSL.week()

和往常一样,如果您缺少对某些特定于供应商的功能的支持,则可以使用plain SQL templating

轻松地自己构建它。
public static <T> Field<T> dateTrunc(String datePart, Field<T> field) {
    return DSL.field("date_trunc({0}, {1})", 
        field.getDataType(), DSL.inline(datePart), field);
}