日期:2014-05-17  浏览次数:20853 次

求教关于sql时间问题
有如下需求,
假如输入一段时间比如:2013-1-1至203-1-5
那我sql就得查出 2013-1-1  2013-1-2 2013-1-3 2013-1-4 2013-1-5
这样五条数据。然后再跟数据库表里面数据匹配。
不知道有大神可否赐教一下!
SQL 需求

------解决方案--------------------
select sday + level - 1
  from (select to_date('2013-1-1', 'yyyy-mm-dd') sday,
               to_date('2013-1-5', 'yyyy-mm-dd') eday
          from dual) t
connect by level <= t.eday - t.sday + 1

------解决方案--------------------
比较基本的sql


--举例:求t2(t_date,t_num)里面的每天合计数量
select t1.d_date,nvl(sum(t2.t_num),0) t_num
from
(
select date'2013-01-01'+level-1 d_date
from dual
connect by level <= date'2013-01-05' - date'2013-01-01' + 1
) t1 left join t2 on t1.d_date = t2.t_date
group by t1.d_date
order by t1.d_date