oracle 查詢出一段時間內連續時間間隔的記錄集

在實際工作中,有時候要按時間統計一些數據,但數據庫裏的數據不一定是連續的,按時間分組的話,就會形成時間斷檔,爲了讓顯示的結果能形成連續的時間記錄,

通常的做法就是先形成一個一段時間內連續時間間隔的記錄集,再跟數據庫裏的查詢結果連接就可以了。

下面給出查詢出一段時間內連續時間間隔的SQL語句:

SELECT to_date('2013-10-01', 'yyyy-mm-dd') +
       numtodsinterval(rownum - 1, 'hour')
  FROM DUAL
CONNECT BY ROWNUM <= ((to_date('2013-10-02', 'yyyy-mm-dd') -
           to_date('2013-10-01', 'yyyy-mm-dd') + 1) * 24)

結果如下:

1	2013/10/1
2	2013/10/1 1:00:00
3	2013/10/1 2:00:00
4	2013/10/1 3:00:00
5	2013/10/1 4:00:00
6	2013/10/1 5:00:00
7	2013/10/1 6:00:00
8	2013/10/1 7:00:00
9	2013/10/1 8:00:00
10	2013/10/1 9:00:00
11	2013/10/1 10:00:00
12	2013/10/1 11:00:00
13	2013/10/1 12:00:00
14	2013/10/1 13:00:00
15	2013/10/1 14:00:00
16	2013/10/1 15:00:00
17	2013/10/1 16:00:00
18	2013/10/1 17:00:00
19	2013/10/1 18:00:00
20	2013/10/1 19:00:00
21	2013/10/1 20:00:00
22	2013/10/1 21:00:00
23	2013/10/1 22:00:00
24	2013/10/1 23:00:00
25	2013/10/2
26	2013/10/2 1:00:00
27	2013/10/2 2:00:00
28	2013/10/2 3:00:00
29	2013/10/2 4:00:00
30	2013/10/2 5:00:00
31	2013/10/2 6:00:00
32	2013/10/2 7:00:00
33	2013/10/2 8:00:00
34	2013/10/2 9:00:00
35	2013/10/2 10:00:00
36	2013/10/2 11:00:00
37	2013/10/2 12:00:00
38	2013/10/2 13:00:00
39	2013/10/2 14:00:00
40	2013/10/2 15:00:00
41	2013/10/2 16:00:00
42	2013/10/2 17:00:00
43	2013/10/2 18:00:00
44	2013/10/2 19:00:00
45	2013/10/2 20:00:00
46	2013/10/2 21:00:00
47	2013/10/2 22:00:00
48	2013/10/2 23:00:00


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章