如何在 MYTABLE 下面写 select *,其中 date(MYDATE) 在 '2015-12-30' 和 '2015-12-30' 之间;在JOOQ

how to write below select * from MYTABLE where date(MYDATE) between '2015-12-30' and '2015-12-30'; in JOOQ

下面怎么写SQL:

select * from MYTABLE where date(MYDATE) between '2015-12-30' 
and '2015-12-30'; 

在 JOOQ 中,MYDATE 的类型是 java.sql.timestamp。

这是 1:1 翻译:

DSL.using(configuration)
   .select()
   .from(MYTABLE)
   .where(DSL.date(MYTABLE.MYDATE).between(Date.valueOf("2015-12-30"))
                                  .and(Date.valueOf("2015-12-30")))
   .fetch();

一些批评:

  • 你的两个日期相同,所以你的查询可能没有意义
  • 您不应该 cast/convert MYDATE 列,因为这会阻止使用索引。相反,您应该为这两个日期计算出正确的时间戳范围。