Jooq查询时间的条件写法
2017-03-09 17:35
1141 查看
Jooq查询时间的条件写法
国内Jooq的文档实在太少了,需要用到时间查询的时候居然找不到任何资料。自己整理了一下几种用法。查询在某一天的记录
public List<Record> findList(LocalDate date){ return create .selectFrom(Record) .where(Record.createDate .between(date.atStartOfDay(), date.plusDays(1).atStartOfDay()) ) .fetch()?.into(Record.class) }
date的格式是“2017-03-09“,这里
createDate的时间格式是
LocalDateTime,所以我将
date转换成
LocalDateTime。解析出来的sql语句是这样的
'record'.'create_date' between '2017-03-09T00:00' and '2017-03-10T00:00'。
查询从某一天到某一天的记录
public List<Record> findList(LocalDate date){ return create .selectFrom(Record) .where(Record.createDate .cast(LocalDate.class) .between(date, date.plusDays(1)) ) .fetch()?.into(Record.class) }
这里我将
createDate转换成了
LocalDate,再查询在“2017-03-09”和“2017-03-10”之间的记录。这里返回的结果是包含“03-09”到“03-10”两天的。
查询在某一天之前的记录(不包括作参数的那天)
将between(date, date.plusDays(1))改成
lessThan(date)
查询在某一天之后的记录(不包括作参数的那天)
将between(date, date.plusDays(1))改成
greaterThan(date)
查询在某一天之前的记录(包括作参数的那天)
将between(date, date.plusDays(1))改成
lessOrEqual(date)
查询在某一天之后的记录(包括作参数的那天)
将between(date, date.plusDays(1))改成
greaterOrEqual(date)
PS:直接在
.where(Record.createDate.cast(LocalDate.class).eq(date)条件语句中判断equals,理论上是可行的。然而我这边生成的sql放在数据库中能够返回数据的,但是程序中返回空集。如有大神知道原因,麻烦告知,谢谢。
转载请注明出处
感觉自己萌萌哒
http://blog.csdn.net/qq_19937081/article/details/60964024
相关文章推荐
- mysql 时间类型查询条件写法
- 一个土鳖的时间范围查询条件写法 基于QDateEdit和sqlite的smalldatetime
- oracle数据库使用时间作为查询条件时的写法
- 验证查询条件 - 起始时间和终止日期
- 跨数据库的时间查询的写法
- Sql 时间条件查询语句
- SqlServer查询日期时间范围条件
- SQL SERVER查询时间条件式写法
- 如何在ACCESS中以时间为条件查询数据
- db2 数据库查询条件为有时间差的记录
- SQL 时间条件查询
- sqlsever 一表查询两种条件时间并合并查询结果
- 时间类型数据使用between ...and ..语句条件查询时应注意的问题
- 关于SQL连接 加条件查询的LINQ表达式写法
- Restrictions.sqlRestriction以时间作为条件查询
- 查询条件TPH inheritance 查询的 3 种写法
- 关于条件查询的数据底层写法
- SQL SERVER查询时间条件式写法
- FleaPHP【数据库】 查询条件($conditions) 的写法
- 多个条件查询 写法