【发布时间】:2017-06-19 15:52:42
【问题描述】:
有允许将时间戳转换为各种日期部分的语法,包括 unix 纪元。这工作如下(至少在最新的 PostgreSQL 中):
SELECT EXTRACT(EPOCH FROM "ts") FROM...
但是,jOOQ 似乎不支持这种语法,正如我发现的 this discussion 所证明的那样,它链接到 jOOQ github 上仍然打开的 Issue #2132。
对此有什么解决方法?如何在 jOOQ 的语法中模拟这种行为(即,不必用纯 SQL 编写整个查询)?
【问题讨论】:
-
如果问题出在
EPOCH上,您可以尝试提取DAY并将其乘以60*60*24?.. -
这样我会失去很多精确度。
-
(extract('DAY' from now()-'1970-01-01')*60*60*24 + extract(seconds from now())+ extract(minutes from now())*60 + extract(hours from now())*60*60)给出的结果与 EXTRACT(EPOCH FROM now()) 完全相同 - 看到我的答案了吗?.. -
如果你可以使用任何函数,你可以调用
date_part('epoch', "ts")来代替(它们在PostgreSQL中是一样的)。
标签: sql postgresql jooq