昨晚在群里闲逛 有一哥们要查 1月1日到2月15日1点到2点的数据。
要求单条sql实现。
其实最主要的就是构造一个数列,得到这段日期内每天的起始时间点与结束时间点
然后再做一次不等连接即可。
实现如下
SELECT to_date(to_char(to_date('20090101','yyyymmdd')+(LEVEL-1),'yyyymmdd')||'01','yyyymmddhh') BEGIN_time,
to_date(to_char(to_date('20090101','yyyymmdd')+(LEVEL-1),'yyyymmdd')||'02','yyyymmddhh')
FROM dual
CONNECT BY LEVEL <=to_date('20090216','yyyymmdd')- to_date('20090101','yyyymmdd')
结果如下
BEGIN_TIME TO_DATE(TO_CHAR(TO_DATE('20090
2009-1-1 1:00:00 2009-1-1 2:00:00
2009-1-2 1:00:00 2009-1-2 2:00:00
2009-1-3 1:00:00 2009-1-3 2:00:00
2009-1-4 1:00:00 2009-1-4 2:00:00
2009-1-5 1:00:00 2009-1-5 2:00:00
2009-1-6 1:00:00 2009-1-6 2:00:00
2009-1-7 1:00:00 2009-1-7 2:00:00
2009-1-8 1:00:00 2009-1-8 2:00:00
2009-1-9 1:00:00 2009-1-9 2:00:00
2009-1-10 1:00:00 2009-1-10 2:00:00
2009-1-11 1:00:00 2009-1-11 2:00:00
2009-1-12 1:00:00 2009-1-12 2:00:00
2009-1-13 1:00:00 2009-1-13 2:00:00
2009-1-14 1:00:00 2009-1-14 2:00:00
2009-1-15 1:00:00 2009-1-15 2:00:00
2009-1-16 1:00:00 2009-1-16 2:00:00
2009-1-17 1:00:00 2009-1-17 2:00:00
2009-1-18 1:00:00 2009-1-18 2:00:00
2009-1-19 1:00:00 2009-1-19 2:00:00
2009-1-20 1:00:00 2009-1-20 2:00:00
2009-1-21 1:00:00 2009-1-21 2:00:00
2009-1-22 1:00:00 2009-1-22 2:00:00
2009-1-23 1:00:00 2009-1-23 2:00:00
2009-1-24 1:00:00 2009-1-24 2:00:00
2009-1-25 1:00:00 2009-1-25 2:00:00
2009-1-26 1:00:00 2009-1-26 2:00:00
2009-1-27 1:00:00 2009-1-27 2:00:00
2009-1-28 1:00:00 2009-1-28 2:00:00
2009-1-29 1:00:00 2009-1-29 2:00:00
2009-1-30 1:00:00 2009-1-30 2:00:00
2009-1-31 1:00:00 2009-1-31 2:00:00
2009-2-1 1:00:00 2009-2-1 2:00:00
2009-2-2 1:00:00 2009-2-2 2:00:00
2009-2-3 1:00:00 2009-2-3 2:00:00
2009-2-4 1:00:00 2009-2-4 2:00:00
2009-2-5 1:00:00 2009-2-5 2:00:00
2009-2-6 1:00:00 2009-2-6 2:00:00
2009-2-7 1:00:00 2009-2-7 2:00:00
2009-2-8 1:00:00 2009-2-8 2:00:00
2009-2-9 1:00:00 2009-2-9 2:00:00
2009-2-10 1:00:00 2009-2-10 2:00:00
2009-2-11 1:00:00 2009-2-11 2:00:00
2009-2-12 1:00:00 2009-2-12 2:00:00
2009-2-13 1:00:00 2009-2-13 2:00:00
2009-2-14 1:00:00 2009-2-14 2:00:00
2009-2-15 1:00:00 2009-2-15 2:00:00
修改to_date('20090216','yyyymmdd')- to_date('20090101','yyyymmdd') 以便修改长度
要求单条sql实现。
其实最主要的就是构造一个数列,得到这段日期内每天的起始时间点与结束时间点
然后再做一次不等连接即可。
实现如下
SELECT to_date(to_char(to_date('20090101','yyyymmdd')+(LEVEL-1),'yyyymmdd')||'01','yyyymmddhh') BEGIN_time,
to_date(to_char(to_date('20090101','yyyymmdd')+(LEVEL-1),'yyyymmdd')||'02','yyyymmddhh')
FROM dual
CONNECT BY LEVEL <=to_date('20090216','yyyymmdd')- to_date('20090101','yyyymmdd')
结果如下
BEGIN_TIME TO_DATE(TO_CHAR(TO_DATE('20090
2009-1-1 1:00:00 2009-1-1 2:00:00
2009-1-2 1:00:00 2009-1-2 2:00:00
2009-1-3 1:00:00 2009-1-3 2:00:00
2009-1-4 1:00:00 2009-1-4 2:00:00
2009-1-5 1:00:00 2009-1-5 2:00:00
2009-1-6 1:00:00 2009-1-6 2:00:00
2009-1-7 1:00:00 2009-1-7 2:00:00
2009-1-8 1:00:00 2009-1-8 2:00:00
2009-1-9 1:00:00 2009-1-9 2:00:00
2009-1-10 1:00:00 2009-1-10 2:00:00
2009-1-11 1:00:00 2009-1-11 2:00:00
2009-1-12 1:00:00 2009-1-12 2:00:00
2009-1-13 1:00:00 2009-1-13 2:00:00
2009-1-14 1:00:00 2009-1-14 2:00:00
2009-1-15 1:00:00 2009-1-15 2:00:00
2009-1-16 1:00:00 2009-1-16 2:00:00
2009-1-17 1:00:00 2009-1-17 2:00:00
2009-1-18 1:00:00 2009-1-18 2:00:00
2009-1-19 1:00:00 2009-1-19 2:00:00
2009-1-20 1:00:00 2009-1-20 2:00:00
2009-1-21 1:00:00 2009-1-21 2:00:00
2009-1-22 1:00:00 2009-1-22 2:00:00
2009-1-23 1:00:00 2009-1-23 2:00:00
2009-1-24 1:00:00 2009-1-24 2:00:00
2009-1-25 1:00:00 2009-1-25 2:00:00
2009-1-26 1:00:00 2009-1-26 2:00:00
2009-1-27 1:00:00 2009-1-27 2:00:00
2009-1-28 1:00:00 2009-1-28 2:00:00
2009-1-29 1:00:00 2009-1-29 2:00:00
2009-1-30 1:00:00 2009-1-30 2:00:00
2009-1-31 1:00:00 2009-1-31 2:00:00
2009-2-1 1:00:00 2009-2-1 2:00:00
2009-2-2 1:00:00 2009-2-2 2:00:00
2009-2-3 1:00:00 2009-2-3 2:00:00
2009-2-4 1:00:00 2009-2-4 2:00:00
2009-2-5 1:00:00 2009-2-5 2:00:00
2009-2-6 1:00:00 2009-2-6 2:00:00
2009-2-7 1:00:00 2009-2-7 2:00:00
2009-2-8 1:00:00 2009-2-8 2:00:00
2009-2-9 1:00:00 2009-2-9 2:00:00
2009-2-10 1:00:00 2009-2-10 2:00:00
2009-2-11 1:00:00 2009-2-11 2:00:00
2009-2-12 1:00:00 2009-2-12 2:00:00
2009-2-13 1:00:00 2009-2-13 2:00:00
2009-2-14 1:00:00 2009-2-14 2:00:00
2009-2-15 1:00:00 2009-2-15 2:00:00
修改to_date('20090216','yyyymmdd')- to_date('20090101','yyyymmdd') 以便修改长度
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12474069/viewspace-669407/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12474069/viewspace-669407/