oracle 日期分組查詢

前景

在做數據報表時,需要對某一時間段分組,以1小時爲時間間隔統計各項數據,如9點-10點,10點-11點…,但是現在有種情況,時間有可能不是整點開始,會有半點的情況,9點30,需要按照9點30-10點30,10點30-11點30分組統計

實現

以時間範圍起始時間作爲參照時間,計算與其差值(分)/所需時間間隔(1小時)
得出值作爲分組依據。

例子
 select xx, 
      floor(
        floor(
         (refDate-to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss'))
         * 24 * 60) / 60
      ) factor
where    refDate >=to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss') 
 and  refDate <=....

floor:取整用
refDate:每條數據中的日期字段
2021-02-05 08:30:參照時間
factor:算出的分組依據


在這裏插入圖片描述
以上查詢範圍是21:30-23:30,以21.30作爲參照時間,可將時間段劃分爲21.30-22:30,22:30-23:30。。

在此基礎上查詢時間所屬時間段

在這裏插入圖片描述
以上通過 factor/24 含義爲間隔一小時, 可以通過改變這兩個值任意組合時間間隔。

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