JOOQ如何查询日期之间

时间:2015-07-16 11:01:01

标签: 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;

我写的等效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();

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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我认为问题在于传递时间戳或日期和时间(我不太了解java)。所以改为发送e.x. “2015-07-16”,你得到“2015-07-16 12:55:00”或“1436187300”。

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

要获得正确的日期值,您可以使用: