Tom*_* M. 4 sql postgresql jooq
有一些语法允许将时间戳转换为各种日期部分,包括 unix 纪元。其工作原理如下(至少在最新的 PostgreSQL 中):
SELECT EXTRACT(EPOCH FROM "ts") FROM...
Run Code Online (Sandbox Code Playgroud)
然而,jOOQ 似乎不支持这种语法,正如我发现的这个讨论所证明的那样,它链接到jOOQ github 上仍然开放的问题 #2132。
对此有哪些解决方法?我如何在 jOOQ 的语法中模拟这种行为(即不必用纯 SQL 编写整个查询)?
你总是可以使用 jOOQ 使用普通的 SQL:
public static Field<Integer> extractEpochFrom(Field<Timestamp> field) {
return DSL.field("extract(epoch from {0})", Integer.class, field);
}
Run Code Online (Sandbox Code Playgroud)
目前 (jOOQ 3.11) 实验性支持其他非标准DatePart类型,例如DatePart.EPOCH. 它可能已经适用于 PostgreSQL,但不适用于其他数据库。
此支持将在未来版本中得到改进,包括 jOOQ 3.12,请参阅:https : //github.com/jOOQ/jOOQ/issues/7794
| 归档时间: |
|
| 查看次数: |
1062 次 |
| 最近记录: |