【问题标题】:Group by calendar week in jOOQ在 jOOQ 中按日历周分组
【发布时间】:2014-06-13 16:19:05
【问题描述】:

我在 GROUP BY 中使用此字段来获取月度报告:

trunc(date(SOME_TIMESTAMP), DatePart.MONTH).as("month")

同样适用于每日或年度报告。

但是我怎样才能做每周报告呢?没有DatePart.WEEK

【问题讨论】:

    标签: java sql datetime jooq


    【解决方案1】:

    你可以尝试一个简单的 SQL,像这样:

    public static Field<Integer> yearWeek(Field<Timestamp> field, int mode) {
        return DSL.field("yearweek({0}, {1})", SQLDataType.INTEGER,
                field, DSL.inline(mode));
    }
    

    像这样使用它: groupBy(yearWeek(SOME_TIMESTAMP_FIELD, 1)).

    模式正在录制到mysql的yearweek

    【讨论】:

      【解决方案2】:

      从 jOOQ 3.3 开始,仅支持 SQL 标准“日期部分”。有一个 pending feature request issue #2132 用于添加其他供应商特定的日期部分。同时,您可能需要求助于普通的 SQL 实现。

      这里有一些提示:

      【讨论】:

        猜你喜欢
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2018-04-07
        • 1970-01-01
        • 2012-01-23
        • 2010-10-29
        • 2023-03-09
        • 2014-08-03
        相关资源
        最近更新 更多