2017-07-29 35 views
1

我使用的是3.5版本jooqSQL DATE_FORMAT在替代在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') 

回答

1

每当你需要的是不被支持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();