sql查詢時間段區間統計

2021-08-24 18:44:07 字數 1546 閱讀 1146

寫好這個sql,竟然發現不知道現在是上午還是下午。看來我真是埋頭寫了乙個多小時沒有分散注意力了。呵呵。寫在部落格記錄一下!

需求:按天統計巡檢的基站數量。

建表sql:

create table plan_vp_stat_patrol_detail(

tid varchar2(40) not null,

patrol_vp_id varchar2(30) not null,

patrol_time date,//巡檢時間

constraint pk_vp_stat_pdetail_id primary key(tid)

);每巡檢一次就傳送一條資料在此表中

表資料:

tid patrol_vp_id patrol_time

1 1 2009-6-16 12:34:34

2 1 2009-6-17 12:38:34

3 2 2009-6-19 12:38:34

4 3 2009-6-16 12:38:34

5 3 2009-6-18 12:38:34

現在要統計6.15-6.21期間內的每天所巡檢的基站數量,某天沒有資料也要顯示為0

select to_date('2009-06-15 00:00:00', 'yyyy-mm-dd hh24:mi:ss') +

(r - 1) begin_time,

to_date('2009-06-15 00:00:00', 'yyyy-mm-dd hh24:mi:ss') + r end_time,

count(p.tid) vp_num

from plan_vp_stat_patrol_detail p right join

(select rownum r from dual connect by level <= 7)

on p.patrol_time between

to_date('2009-06-15', 'yyyy-mm-dd hh24:mi:ss') +

(r - 1) and

to_date('2009-06-15', 'yyyy-mm-dd hh24:mi:ss') + r

group by r

order by begin_time

說明:(select rownum n from dual connect by level <= 7) 7,代表顯示7天資料,從6.15號開始的7天。可以用trunc(to_date('2009-06-21','yyyy-mm-dd')) - trunc(to_date('2009-06-15','yyyy-mm-dd'))+1 函式去取得。

執行結果:

begin_time end_time vp_num

2009-6-15 2009-6-16 0

2009-6-16 2009-6-17 2

2009-6-17 2009-6-18 1

2009-6-18 2009-6-19 1

2009-6-19 2009-6-20 1

2009-6-20 2009-6-21 0

2009-6-21 2009-6-22 0

sql 查詢時間 SQL查詢時間段重合的記錄

問題 查詢某一列 物件時間段重合的記錄time range overlap 資料結構 表demo table,字段如下 字段型別 id.object name 物件 varchar start time 開始時間 datetime end time 結束時間 datetime others 其他字段...

JAVA MONGODB 查詢時間段

雖然mongodb存的時間為utc時間,與中國相差8小時,但是這並不需要客戶端程式做處理。dateformat format new dateformat yyyy mm dd hh mm ss date starttime format.parse 2019 06 17 15 37 08 date...

mysql查詢時間段

閱讀需要 3 分鐘 內容 mysql 時間段查詢 一些時間的型別 及常用時間函式 日期型別 儲存空間 日期格式 日期範圍 datetime 8 bytes yyyy mm dd hh mm ss 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 ...