【发布时间】:2014-06-13 16:19:05
【问题描述】:
我在 GROUP BY 中使用此字段来获取月度报告:
trunc(date(SOME_TIMESTAMP), DatePart.MONTH).as("month")
同样适用于每日或年度报告。
但是我怎样才能做每周报告呢?没有DatePart.WEEK。
【问题讨论】:
我在 GROUP BY 中使用此字段来获取月度报告:
trunc(date(SOME_TIMESTAMP), DatePart.MONTH).as("month")
同样适用于每日或年度报告。
但是我怎样才能做每周报告呢?没有DatePart.WEEK。
【问题讨论】:
你可以尝试一个简单的 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。
【讨论】:
从 jOOQ 3.3 开始,仅支持 SQL 标准“日期部分”。有一个 pending feature request issue #2132 用于添加其他供应商特定的日期部分。同时,您可能需要求助于普通的 SQL 实现。
这里有一些提示:
【讨论】: