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

如何根据起始时间分解生成每隔15分钟的时间点
例如:08:15:00--22:45:00
起始时间08:15:00结束时间22:45:00
结果:08:15:00,08:30:00,08:45:00,09:00:00------一直到22:00:00,22:15:00,22:30:00,22:45:00

现在不知道是用java写代码还是sql语句就能做到
------解决方案--------------------
引用:
例如:08:15:00--22:45:00
起始时间08:15:00结束时间22:45:00
结果:08:15:00,08:30:00,08:45:00,09:00:00------一直到22:00:00,22:15:00,22:30:00,22:45:00

现在不知道是用java写代码还是sql语句就能做到
select to_date('2014-03-04 08:15:00', 'yyyy-mm-dd hh24:mi:ss') +
       (rownum - 1) / (24 * 60 / 15)
  from dual
connect by rownum <=
           (trunc(to_date('2014-03-04 22:45:00', 'yyyy-mm-dd hh24:mi:ss'),
                  'mi') -
           trunc(to_date('2014-03-04 08:15:00', 'yyyy-mm-dd hh24:mi:ss'),
                  'mi')) * 24 * (60 / 15) + 1

------解决方案--------------------
引用:
例如:08:15:00--22:45:00
起始时间08:15:00结束时间22:45:00
结果:08:15:00,08:30:00,08:45:00,09:00:00------一直到22:00:00,22:15:00,22:30:00,22:45:00

现在不知道是用java写代码还是sql语句就能做到


SELECT TO_CHAR(S_DT + (ROWNUM - 1) * 15 / 1440, 'hh24:mi:ss')
  FROM (SELECT TO_DATE('08:15:00', 'hh24:mi:ss') S_DT,
               TO_DATE('22:45:00', 'hh24:mi:ss') E_DT
          FROM DUAL) T
CONNECT BY S_DT + (ROWNUM - 1) * 15 / 1440 <= E_DT;