【发布时间】:2015-11-18 19:46:02
【问题描述】:
我正在使用 MySQL 服务器,并且正在尝试使用 JOOQ API 检索时间戳。但是,我认为默认的 JOOQ 行为返回本地时区的时间,而不是 UTC(它没有使用 UNIX_TIMESTAMP()。使用 JOOQ,我的查询看起来像
db.select(USER_TABLE.REGISTERED_ON)
.from(USER_TABLE)
.where(USER_TABLE.EMAIL.equal(email)
.fetchAny()
但是,我要执行的sql应该是这样的
SELECT UNIX_TIMESTAMP(schema.table.timestamp_col)
FROM schema.table
WHERE email="someone@domain.com"
是否可以使用 JOOQ API?如果不是,那么运行此查询的最佳方式是什么,因为我真的希望能够使用生成的代码(USER_TABLE、USER_TABLE.REGISTERED_ON 等)。
编辑:我现在正在执行以下操作,但它安全吗?基本上我正在从 JOOQ 生成的类中删除引用。
String timestamp_field = USER_TABLE.REGISTERED_ON.toString().replace("\"", "");
Field<?> f = DSL.field("UNIX_TIMESTAMP(" + timestamp_field + ")");
Record r = db.select(f)
.from(USER_TABLE)
.where(USER_TABLE.EMAIL.equal(email))
.fetchAny();
【问题讨论】: