【发布时间】:2012-01-26 10:27:51
【问题描述】:
我需要知道如何获取 Hibernate 查询结果集中某个日期范围内的所有日期。
应该类似于下面的SQL伪代码
从 ???? 中选择“所有日期”之间的日期 TO_DATE('date-val','format') 和 TO_DATE('date-val','format')。
它可能需要一些不同的逻辑,但如果我给出一个范围,比如 2011 年 2 月 5 日到 2011 年 3 月 2 日 它应该返回结果集中该范围内的所有日期... 即
结果集 = 2011 年 2 月 5 日、2011 年 2 月 6 日、..... 2011 年 2 月 28 日、2011 年 3 月 1 日、 2011 年 3 月 2 日
更新:
以下查询在 Oracle 中给出了所需的结果集
select
d.dateInRange as dateval,
eventdesc,
nvl(td.dist_ucnt, 0) as dist_ucnt
from (
select
to_date('03-NOV-2011','dd-mon-yyyy') + rownum - 1 as dateInRange
from all_objects
where rownum <= to_date('31-DEC-2011','dd-mon-yyyy') - to_date('03-NOV-2011','dd-mon-yyyy') + 1
) d
left join (
select
currentdate,
count(distinct(grauser_id)) as dist_ucnt,
eventdesc
from
txn_summ_dec
group by currentdate, eventdesc
) td on td.currentdate = d.dateInRange order by d.dateInRange asc
Resultset:
Date eventdesc dist_cnt
2011-11-03 00:00:00 null 0
and so on..
2011-11-30 00:00:00 null 0
2011-12-01 00:00:00 Save Object 182
....
2011-12-31 00:00:00 null 0
【问题讨论】:
-
我也可以使用 Java,只是为了明确这样做的目的,最后我想在这个结果集上做一个左连接,在这个范围内我的用户数量不同,按日期分组,这样我对结果集中的所有日期都有计数(即使某个日期没有计数)