簡體   English   中英

ORACLE SQL查詢獲取間隔為30分鍾(基於兩個小時)的行

[英]ORACLE SQL query to get rows of intervals of 30 minutes based on two hours

我需要執行一個查詢,該查詢基於兩個小時(start_hour和end_hour)為我提供30分鍾間隔的行。 我有一個表,在此表中,此列具有“ start_hour和end_hour”。 假設我有這個
| start_hour | end_hour |
| 上午09:00 | 下午08:00 |
我需要一個給出這樣結果的查詢。
| 間隔|
| 上午09:00 |
| 上午09:30 |
| 10:00 AM |
| 上午10:30 |
| 11:00 AM |
| 上午11:30 |
| 12:00 AM |
| 上午12:30 |
...
...
...
| 下午07:30 |
| 下午08:00 |
如示例所示,行需要以我在表中具有的end_hour值結束。 有人可以幫助我該怎么做,我嘗試將start_hour舍入,但是沒有任何結果。

這有點笨拙,並且會根據您的特定需求進行一些編輯,但這是我幾年前使用的稍作修改的代碼,應該可以作為您的堅實起點:

select to_char(time_slot,'HH:MIPM') 
  from (select trunc(to_date('05/23/2019','MM/DD/YYYY'))+(rownum-1)*(30/24/60) time_slot 
          from dual 
          connect by level <= (24*2))
 where to_char(time_slot,'HH24:MI') between
    --start_hour
    '09:00'
    and
    --end hour
    '20:00';

OUTPUT
09:00AM
09:30AM
10:00AM
10:30AM
11:00AM
11:30AM
12:00PM
12:30PM
01:00PM
01:30PM
02:00PM
02:30PM
03:00PM
03:30PM
04:00PM
04:30PM
05:00PM
05:30PM
06:00PM
06:30PM
07:00PM
07:30PM
08:00PM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM