【问题标题】:Group by time with postgres and jooq使用 postgres 和 jooq 按时间分组
【发布时间】:2019-07-09 16:04:54
【问题描述】:

如何在 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 实现等效功能?

【问题讨论】:

    标签: java sql jooq


    【解决方案1】:

    与往常一样,如果您缺少对某些供应商特定功能的支持,您可以使用 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);
    }
    

    【讨论】:

    • DSL.minutedate_trunc 不是不同的东西吗?前者只提供自己的分钟数,后者返回一个时间戳,其中一些值设置为 0? DSL.trunc(Date, DatePart) 不完全等同于 date_trunc 吗?当我当前使用date_trunc('month', now()) 时,我正在寻找这样的文档。
    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多