SQL DATE_FORMAT 在 Jooq 的替代中

SQL DATE_FORMAT in Alternative in Jooq

我使用的是 3.5 jooq 版本

我知道 jooq 不支持 DATE_FORMAT 功能,但有什么替代方案

这是我想用 JOOQ 创建的查询

SELECT DATE_FORMAT(`date_create`, '%d/%m/%Y') AS date_create FROM users
GROUP BY DATE_FORMAT(`date_create`, '%d/%m/%Y')

每当您需要 jOOQ 不支持的特定于供应商的 SQL 功能时,plain SQL API 将成为您的朋友。编写一个实用程序:

public static Field<String> dateFormat(Field<Date> field, String format) {
    return DSL.field("date_format({0}, {1})", SQLDataType.VARCHAR, 
        field, DSL.inline(format));
}

然后您可以像使用任何其他 jOOQ 提供的函数一样使用它:

DSL.using(configuration)
   .select(dateFormat(USERS.DATE_CREATE, "%d/%m/%Y").as("date_create"))
   .from(USERS)
   .groupBy(dateFormat(USERS.DATE_CREATE, "%d/%m/%Y"))
   .fetch();