JOOQ如何查询日期之间

Che*_*tan 5 mysql sql date between jooq

我在我的项目中使用jooq,我需要在两个日期之间查询一些数据.

生成正确数据的sql查询是

select created_on from queue_token where created_on between '2015-07-16' and '2015-07-17' and token_queue_id=1;
Run Code Online (Sandbox Code Playgroud)

我写的等效jooq查询在下面,但没有给出所需的结果

 create.select().from(com.database.tables.QueueToken.QUEUE_TOKEN)
                   .where(com.database.tables.QueueToken.QUEUE_TOKEN.TOKEN_QUEUE_ID.equal(1))
                    .and(com.database.tables.QueueToken.QUEUE_TOKEN.CREATED_ON.between(new Timestamp(fromDate.getTime())).and(new Timestamp(toDate.getTime())))
                    .fetch();
Run Code Online (Sandbox Code Playgroud)

jooq查询生成结果,但只生成与fromDate完全匹配的记录.所以基本上它不适用于日期范围.

有人可以帮忙吗?

Mat*_*att 1

我认为问题在于传递时间戳或日期和时间(我不太了解java)。因此,您会收到“2015-07-16 12:55:00”或“1436187300”,而不是发送“2015-07-16”。

尝试调试第一个值new Timestamp(fromDate.getTime()),如果我是对的,请尝试将其转换为没有时间的简单日期。

要获得正确的日期值而不需要时间,您可以使用: