在jOOQ按日历周分组

时间:2014-04-28 08:05:26

标签: java sql datetime jooq

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

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

每日或每年报告的工作方式也相同。

但我怎样才能做周报?没有DatePart.WEEK

2 个答案:

答案 0 :(得分:1)

从jOOQ 3.3起,只有SQL标准"日期部分"得到支持。有一个pending feature request issue #2132用于添加其他特定于供应商的日期部分。与此同时,您可能需要采用简单的SQL实现。

这里有一些指示:

答案 1 :(得分:0)

您可以尝试使用纯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