【发布时间】:2021-07-23 18:45:21
【问题描述】:
我有一个名为delivery 的表和日期时间字段delivery_time。
+--------------------+------------------------------------------+------+-----+-------------------+
| Field | Type | Null | Key | Default |
+--------------------+------------------------------------------+------+-----+-------------------+
| delivery_time | datetime | YES | | NULL |
我想计算每个日期的交付情况。使用普通的 sql 我可以做到这一点
select CAST(delivery_time as DATE) as date, count(*) as count from delivery group by CAST(delivery_time as DATE);
+------------+-------+
| date | count |
+------------+-------+
| 2021-04-21 | 1 |
| 2021-03-22 | 11 |
| NULL | 3 |
| 2021-03-21 | 1 |
| 2021-04-22 | 2 |
| 2021-04-30 | 1 |
+------------+-------+
但是当我尝试使用 JOOQ 执行此操作时,它无法正常工作(仅返回空行)
jooq.dsl()
.select(
date(Tables.DELIVERY.DELIVERY_TIME.toString()),
count()
)
.from(Tables.DELIVERY)
.groupBy(date(Tables.DELIVERY.DELIVERY_TIME.toString()))
.fetch()
谁能帮我用jooq写这个查询
【问题讨论】:
-
根据文档 date() 功能与 CAST 和 DATE 的功能相同。如果我错了,请纠正我
-
但我怀疑
date(DELIVERY_TIME.toString())是否等于CAST(DELIVERY_TIME AS DATE),这就是我评论的原因。 (我对jooq不熟悉)