比如  查询 开始时间 2010-10-10 08,
结束时间  2010-10-11 08,结果为
2010-10-10 08 
2010-10-10 09 
2010-10-10 10   
2010-10-10 11 
2010-10-10 12 
2010-10-10 13
2010-10-10 14
2010-10-10 15 


2010-10-11 08 现在做了一个只能 查指定日期之间 天的 sql,
 Select Rownum, to_date('2010-12-18 08', 'yyyy-mm-dd hh24:mi:ss')+Rownum-1 tm
  from dual connect by rownum< = to_date('2010-12-20 08', 'yyyy-mm-dd hh24:mi:ss')- to_date('2010-12-18 08', 'yyyy-mm-dd hh24:mi:ss') +1;
结果为
2010-12-18 08:00:00
2010-12-19 08:00:00
2010-12-20 08:00:00
怎么样改成上面那种小时的形式?

解决方案 »

  1.   


    --除24就转换成小时了啊
    Select Rownum, to_date('2010-12-18 08', 'yyyy-mm-dd hh24:mi:ss')+(Rownum-1)/24 tm
    from dual connect by rownum< = (to_date('2010-12-20 08', 'yyyy-mm-dd hh24:mi:ss')- to_date('2010-12-18 08', 'yyyy-mm-dd hh24:mi:ss'))*24 +1;
      

  2.   

    把查询结果格式化下就可以了to_char(tm,'yyyy-mm-dd hh24')例如
    select to_char(sysdate,'yyyy-mm-dd hh24') from dual;
      

  3.   


    SQL> select sdt+(level-1)/24 dt
      2  from (select to_date('2010-10-10 08','yyyy-mm-dd hh24') sdt,
      3               to_date('2010-10-11 08','yyyy-mm-dd hh24') edt
      4        from dual)
      5  connect by level <(edt-sdt)*24+2
      6  /
    DT
    -------------
    2010-10-10 08
    2010-10-10 09
    2010-10-10 10
    2010-10-10 11
    2010-10-10 12
    2010-10-10 13
    2010-10-10 14
    2010-10-10 15
    2010-10-10 16
    2010-10-10 17
    2010-10-10 18
    2010-10-10 19
    2010-10-10 20
    2010-10-10 21
    2010-10-10 22
    2010-10-10 23
    2010-10-11 00
    2010-10-11 01
    2010-10-11 02
    2010-10-11 03
    2010-10-11 04
    2010-10-11 05
    2010-10-11 06
    2010-10-11 07
    2010-10-11 0825 rows selected.SQL> 
      

  4.   

    [Quote=引用 1 楼 gelyon 的回复:]SQL code--除24就转换成小时了啊
    Select Rownum, to_date('2010-12-18 08', 'yyyy-mm-dd hh24:mi:ss')+(Rownum-1)/24 tm
    from dual connect by rownum< = (to_date('2010-12-20 08', 'yyyy-mm-dd hh24:mi:ss')- to_date……刚好我也发现了 哎